1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng

69 939 1

Đ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

Thông tin cơ bản

Tiêu đề Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng
Tác giả Nguyễn Công Nhật
Người hướng dẫn Thầy Hoàng Hữu Việt
Trường học Đại Học Vinh
Chuyên ngành Công nghệ thông tin
Thể loại Khoá luận tốt nghiệp
Thành phố Vinh
Định dạng
Số trang 69
Dung lượng 0,95 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Việc sử dụng OLE DB trongORACLE Server đã mở ra một lĩnh vực mới với câu hỏi phân tán, khả năngthực hiện câu hỏi từ nhiều nguồn dữ liệu dữ liệu khác nhau, không chỉ giớihạn trong ORACLE

Trang 1

khoá luận Xin cảm ơn các thầy cô trong khoa Công nghệ thông tin cùng các thầy cô giáo Trờng Đại Học Vinh đã truyền thụ cho em những tri thức quý báu trong suốt 4 năm học qua Công ơn dạy dỗ của thầy cô chỉ có thể đền đáp bằng thái độ học tập nghiêm túc và hăng say, em sẽ cố gắng làm đợc điều đó không chỉ trong quá trình làm khóa luận mà trong cả quá trình công tác sau này.

Sự quan tâm giúp đỡ của bố mẹ, gia đình và bạn bè cũng là một nguồn động viên lớn, con mong rằng những gì làm đợc trong quá trình học tập này sẽ là một phần nhỏ bé đền đáp công ơn của bố mẹ và lòngtin tởng của mọi ngời

Chơng I

Đặt vấn đề

I Giới thiệu đề tài quản lý thi của sinh viên

Quản lý hành chính là một phần công việc quan trọng không thể thiếutrong bất kỳ một tổ chức hay cộng đồng nào, trớc kia việc quản lý chỉ thựchiện bằng sổ sách giấy tờ, nh vậy rất tốn công sức và thời gian, hơn nữa hiệuquả công việc lại không cao, vì vậy việc đa tin học vào quản lý là rất cầnthiết và đáng quan tâm Ngày nay các bài toán quản lý nh quản lý nhân sự,quản lý hàng hoá, quản lý sinh viên đã là một mảng đề tài quen thuộc, các

Trang 2

công cụ trợ giúp quản lý gồm ngôn ngữ lập trình và hệ quản trị cơ sở dữ liệu

từ cổ điển nh Foxpro đến các công cụ phổ biến hiện nay nh Acess, VisualBasic hay thậm chí là Excell đều đã đợc xem xét sử dụng tuỳ theo phạm vibài toán và điều kiện cho phép Công tác quản lý thi của sinh viên trong tr-ờng đại học với số lợng sinh viên đông, xuất phát từ nhiều thành phần và cónhiều thông tin cần quản lý thực sự là một khối công việc lớn cần trợ giúpcủa máy tính Vì vậy trong khoá luận tốt nghiệp này, em muốn đa ra mộtcách tiếp cận và giải quyết vấn đề này với mục tiêu tự động hoá các côngviệc tính toán, xử lý dữ liệu, giảm thiểu nhiệm vụ của con ngời trong hệthống và thống nhất các chức năng thành một hệ thống thống nhất có tổ chứcchặt chẽ Nếu đợc xây dựng tốt, hệ thống mới với sự hỗ trợ của mạng máytính sẽ giảm gánh nặng cho ngời quản lý, tăng tính thuận tiện cho ngời sửdụng, các luồng thông tin chuyển giao trong hệ thống chủ yếu là dới dạng tínhiệu truyền trên mạng máy tính, thông tin giao tiếp với ngời sử dụng có thể ở

2 dạng là hiển thị trên màn hình và trên giấy tờ

Song song với tính thuận tiện sử dụng, thì vấn đề an toàn thông tincàng cần phải đặc biệt chú trọng Mục tiêu xây dựng hệ thống này là triểnkhai một hệ thống quản lý toàn diện trên mạng máy tính, các hoạt động giaotiếp hệ thống nh truyền thông tin, xem thông tin hay chuyển giao thông tingiữa các chức năng xử lý đều thực hiện thông qua mạng, vì thế mạng phải

đảm bảo tính an toàn cao, yêu cầu này chỉ đợc thực hiện tốt khi có đủ điềukiện kỹ thuật và chuyên môn: một mạng máy tính với máy chủ mạnh, đờngtruyền tốt và trình độ quản trị cao, bản thân những ngời làm công tác quản lýcũng cần có kiến thức nhất định về tin học Tuy nhiên với một nớc mà điềukiện vật chất còn nghèo nàn, trình độ khoa học kỹ thuật cha cao nh ViệtNam, những yêu cầu trên cha thể cùng lúc đáp ứng Chơng trình cần phù hợpvới điều kiện hiện thời, đồng thời cho phép nhiều ngời dùng ở những trình độkhác nhau có thể sử dụng nó Mặt khác, hệ thống với tính công khai cànglớn, tức là càng cho phép nhiều ngời sử dụng thì khả năng thâm nhập củanhững “cracker” kẻ phá hoại thông tin càng cao lúc này nhiệm vụ của bảomật thông tin không chỉ đơn giản nh trong các hệ tập trung trớc đây là ngănchặn những truy cập bất hợp pháp vào một máy trung tâm tính toán và lu trữdữ liệu mà nó phải ngăn không cho thông tin bị sửa đổi trái phép trong khivẫn đảm bảo cho những ngời sử dụng khác truy cập một cách thuận tiệnnhất

Trong đề tài này, dựa trên mô hình hệ thống đang hoạt động khảo sáttại trờng Đại học Vinh và các nguyên tắc quản lý chung cũng nh các nguyêntắc đặc thù của Bộ giáo dục, em tiến hành phân tích những đặc trng của cácchức năng, có sắp xếp lại cho hợp lý và thuận tiện hơn nhằm mô hình hoá hệthống thực tế bằng các chức năng máy tính, sau đó xây dựng chơng trìnhthực hiện Chơng trình sẽ từng bớc đợc hoàn thiện để hớng tới một hệ thốngquản lý thống nhất hiệu quả và có giá trị sử dụng trong thực tế

II Lựa chọn công cụ thực hiện

Việc lựa chọn công cụ thực hiện là vô cùng quan trọng Trớc hết nóphản ánh mức độ hiểu biết vấn đề của ngời giải quyết bài toán sâu sắc đến

đâu, anh ta cần phải nắm rõ những đặc trng của bài toán, cân nhắc những

điểm mạnh yếu của môi trờng xung quanh bài toán để chọn đợc công cụ phùhợp Hơn nữa, công cụ thực hiện sẽ quyết định điểm mạnh yếu của chơngtrình xây dựng trên đó

Trang 3

Bài toán quản lý cần hai loại công cụ chính là hệ quản trị cơ sở dữ liệu

để xây dựng và quản lý dữ liệu cho hệ thống và ngôn ngữ lập trình để xâydựng chơng trình Trớc đây, các ứng dụng về cơ sở dữ liệu hầu hết đợc xâydựng trên hệ quản trị truyền thống là Foxpro (bao gồm những phiên bản nhFoxpro for Dos, Foxpro for Windows và mới đây là Visual Foxpro) hoặcAcess, các hệ này rất mạnh trong phạm vi những ứng dụng nhỏ Hiện nayxuất hiện thêm nhiều hệ quản trị mới phát huy khả năng trong các ứng dụnglớn: DB2, Oracle Server Bài toán quản lý sinh viên là kết hợp của nhiều bàitoán nhỏ nh quản lý nhân sự, quản lý điểm, quản lý học bổng, quản lý họcphí nên phạm vi của nó tơng đối lớn, nếu dùng Acess hay FoxPro thì khôngthích hợp Với nhu cầu và khả năng cung cấp máy tính hiện nay thìORACLE Server là hệ quản trị cơ sở dữ liệu đợc phát triển trong môi trờngtính toán phía máy chủ trong thập kỷ 90, bắt đầu với mô hình truyền thốngclient/Server và hiện nay đang phát triển với các xu hớng công nghiệp Gần

đây, ORACLE Server đợc điều chỉnh để thích nghi với các vai trò khác củaServer, bao gồm Internet, các ứng dụng phân tán ORACLE Server có khảnăng thực hiện các câu hỏi với các nguồn dữ liệu phân tán Vì những lý dotrên mà tôi quyết định lựa chọn hệ quản trị CSDL ORACLE Server làm hệquản trị cơ sở dữ liệu cho bài toán

ORACLE Server cho phép ADO (ActiveX Data Object) - tập đối tợngmẫu với những đặc tính tiên tiến truy cập dữ liệu của nó một cách dễ dàng vàtiện lợi cho hầu hết các ứng dụng ADO có thể viết bằng nhiều ngôn ngữkhác nhau nh C++, J++ hay FoxPro; tuy nhiên Visual Basic là cách đơn giản

và thuận tiện nhất để phát triển các ứng dụng ADO truy cập cơ sở dữ liệuoracle Server Trong phần sau sẽ trình bày cụ thể về các cơ sở lý thuyết đểxây dựng hệ thống cũng nh các đặc tính u việt của các công cụ kể trên

Trang 4

Chơng II

Tìm hiểu về oracle

II.1 Hệ quản trị ORACLE Server

II.1.1 Tổng quan về ORACLE Server

Phần này đa ra những giới thiệu về ORACLE Server để đa ra nhữngkhái niệm chung nhất về hệ quản trị ORACLE Server

Trớc hết, cần đặt ORACLE Server ở vai trò của một hệ quản trị cơ sởdữ liệu (DBMS) Hệ quản trị cơ sở dữ liệu là một lớp các sản phẩm phầnmềm dùng làm công cụ quản lý và điều khiển cơ sở dữ liệu

Thứ hai, ORACLE Server là một hệ quản trị cơ sở dữ liệu quan hệ.Nói theo một cách khác, nó là một DBMS dựa trên mô hình quan hệ và chịu

ảnh hởng của ngôn ngữ chuẩn SQL

Thứ ba, ORACLE Server đợc phát triển trong môi trờng tính toán phíamáy chủ trong thập kỷ 90, bắt đầu với mô hình truyền thống client/Server vàhiện nay đang phát triển theo các xu hớng công nghiệp Gần đây, ORACLEServer đợc điều chỉnh để thích nghi với các vai trò khác của Server nhInternet, đa quan hệ và các ứng dụng phân tán Việc sử dụng OLE DB trongORACLE Server đã mở ra một lĩnh vực mới với câu hỏi phân tán, khả năngthực hiện câu hỏi từ nhiều nguồn dữ liệu dữ liệu khác nhau, không chỉ giớihạn trong ORACLE Server, nó có thể kết nối với các nguồn dữ liệu củaInformix, Sybase

Ngày nay, thông tin trong cơ sở dữ liệu nói chung gồm hai loại: OLTP

và DSS

OLTP (Online Transaction Processing): dùng để xử lý các giao dịchtrực tuyến, lu trữ các dữ liệu động dựa trên các giao dịch xảy ra trong khoảngthời gian cho phép Nó thờng đợc gọi là dữ liệu có tính thao tác

DSS: dùng cho các hệ trợ giúp quyết định, gồm các dữ liệu tơng đốitĩnh và các dữ liệu mang tính lịch sử, thờng đợc gọi là dữ liệu có tính phântích

ORACLE Server luôn là một hệ quản trị OLTP tốt, điểm mới trongORACLE Server là nó đợc tăng cờng thêm một số các đặc trng mới và hỗtrợ cho các câu hỏi cần truy nhập đến cơ sở dữ liệu lớn

1 Hệ quản trị cơ sở dữ liệu

Trớc hết ta làm quen với khái niệm Hệ quản trị cơ sở dữ liệu (DBMS –Database Management System): Hệ quản trị cơ sở dữ liệu là một sản phẩmphần mềm đặc biệt để quản lý các cơ sở dữ liệu

Sự ra đời và phát triển của DBMS:

Các ứng dụng hớng dữ liệu nói chung gồm 3 dịch vụ đối với ngời dùng:

 Dịch vụ biểu diễn (Presentation): nhận dữ liệu và biểu diễn dữ liệu chongời sử dụng

 Các luật (Business rule): xác định tính hợp lệ của dữ liệu theo các luật

 Truy nhập dữ liệu (Data access): lu trữ và lấy dữ liệu từ đĩa

Trang 5

Hình 1: Ba dịch vụ của một ứng dụng dữ liệu đối với ngời dùng

Ban đầu, các ứng dụng thờng không phân biệt các vai trò trên, ngời lậptrình cho ứng dụng thờng phải đảm nhiệm cả việc biểu diễn dữ liệu, nhận dữliệu từ ngời dùng, kiểm tra tính hợp lệ và lu trữ dữ liệu, đó là các ứng dụng

đơn khối

Sau đó, các vai trò đợc phân tách dần, từ mức logic đến mức vật lý.Việc phân tách các dịch vụ truy nhập cơ sở dữ liệu khỏi ứng dụng cho phépphát triển hệ quản trị cơ sở dữ liệu thành một sản phẩm phần mềm chung chonhiều mục đích sử dụng Các hệ này đã phát triển từ mức chỉ có khả năng lutrữ và lấy dữ liệu tới khả năng kiểm tra tính hợp lệ bằng các luật

Bớc đột phá này đã tạo ra một lớp sản phẩm phần mềm mới mà ngàynay ngời ta gọi là hệ quản trị cơ sở dữ liệu Bằng cách tách riêng phần xử lýdữ liệu, ta đã giảm đợc chi phí phải viết lại hay tạo lại các chơng trình lu trữdữ liệu cho từng ứng dụng, thay vào đó, các ứng dụng chỉ cần giao tiếp vớiDBMS và nó sẽ xử lý dữ liệu giúp bạn

Sự khác nhau cơ bản giữa cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu là:cơ sở dữ liệu là một tập hợp dữ liệu, trái lại hệ quản trị cơ sở dữ liệu lại lu trữ

và duy trì cơ sở dữ liệu đó Một cơ sở dữ liệu gồm các bảng dữ liệu, chỉ số,các luật ràng buộc, phụ thuộc, trigger, và các thủ tục lu trữ; điều này tạo nên

sự khác biệt giữa các cơ sở dữ liệu, nhng nó vẫn luôn đợc chứa trong mộtDBMS DBMS sẽ cung cấp các công cụ lu trữ, truy nhập dữ liệu, công cụtruy vấn, quản trị và các tiện ích khác để quản lý cơ sở dữ liệu đó

Trang 6

2 Hệ cơ sở dữ liệu quan hệ

Những năm cuối 1960, đầu 1970, các nhà nghiên cứu của IBM và nhàtoán học E.F.Codd đã đa ra mô hình quan hệ cho hệ quản trị cơ sở dữ liệu.Theo lý thuyết về tập chuẩn cho lu trữ và thao tác dữ liệu, Codd đề xuất ý t-ởng biểu diễn dữ liệu dới dạng bảng, nhờ đó việc quan sát dữ liệu độc lập vớibiểu diễn vật lý của DBMS Liên kết (quan hệ) giữa các bảng không thể hiệnbằng con trỏ vật lý mà bằng các giá trị dữ liệu thực sự

Các hệ quản trị cơ sở dữ liệu tuân theo mô hình quan hệ đợc gọi là hệquản trị cơ sở dữ liệu quan hệ (DBMS) Song song với sự ra đời của hệ quảntrị cơ sở dữ liệu quan hệ, nhu cầu về một ngôn ngữ truy vấn để giao tiếp vớidữ liệu cũng phát sinh, và SQL (Structured Query Language - ngôn ngữ hỏi

có cấu trúc) đợc coi là ngôn ngữ chuẩn Chuẩn hiện nay cho SQL là ANSISQL-92

Các đặc trng của một hệ cơ sở dữ liệu quan hệ:

a Các khoá Candidate, Primary, Alternate: khi một bảng

không có các hàng lặp lại thì bạn có thể dùng các giá trị dữ liệu để định danhchính các hàng đó Khoá Candidate là một cột hoặc một nhóm cột đảm bảotính duy nhất trong bảng Trong một bảng có thể có nhiều khoá Candidatebởi vì có nhiều cột hoặc nhóm cột khác nhau nhng vẫn đảm bảo tính duynhất của hàng trong bảng Khoá Primary là khoá Candidate duy nhất do ngờithiết kế dữ liệu chỉ ra, nó dùng để liên kết với các bảng khác Các khoáCandidate khác không là khoá Primary thì gọi là khoá phụ hoặc khoá thaythế (alternate)

b Data manipulation (thao tác dữ liệu): một hệ quản trị cơ sở

dữ liệu quan hệ phải cung cấp khả năng lấy, chèn, cập nhật, xoá các hàngtrong bảng Ngôn ngữ truy vấn phục vụ tốt nhất cho các khả năng này làSQL, nó bao gồm các câu lệnh SELECT, INSERT, COMMAND, DELETE

để thao tác với dữ liệu

c Transaction (giao dịch): là khả năng thực hiện một số các câu

lệnh nh là một khối công việc thống nhất ORACLE Server coi một hoặc mộttập thao tác lên dữ liệu nh một giao dịch, giao dịch hoặc đợc thực hiện toàn

bộ hoặc bị phá vỡ toàn bộ Nếu giao dịch không thành công thì cơ sở dữ liệu

sẽ đợc phục hồi về trạng thái ổn định trớc đó

d Concurrent access (truy nhập đồng thời): hệ quản trị cơ sở

dữ liệu phải hỗ trợ khả năng truy cập đồng thời, tức là cho phép nhiều ngời

sử dụng cùng truy nhập vào cơ sở dữ liệu ORACLE Server dùng phơng phápkhóa: khóa các hàng, các trang hoặc các bảng để thao tác dữ liệu của ngời sửdụng này không ảnh hởng đến thao tác của ngời khác, nhờ đó đảm bảo chomỗi ngời sử dụng có thể quan sát dữ liệu một cách nhất quán

e Catalog: hệ quản trị cơ sở dữ liệu phải hỗ trợ tập các bảng quan hệ

dữ liệu, gọi là Catalog, nó lu trữ dữ liệu về cơ sở dữ liệu ORACLE Server lutrữ catalog và những bảng hệ thống của mọi cơ sở dữ liệu trong các bảng củacơ sở dữ liệu master

f Views (khung nhìn): cơ sở dữ liệu quan hệ cung cấp các khung

nhìn cho phép xem dữ liệu trong các bảng

3 Giao dịch - SQL

Việc định nghĩa các bảng cơ sở dữ liệu và nạp dữ liệu vào đó đợc thựchiện qua ngôn ngữ giao diện hỏi của ORACLE Server là SQL*PLUS.Transact - SQL (T- SQL) là một kiểu "tiếng địa phơng" của ngôn ngữ chuẩn

Trang 7

SQL cho phép định nghĩa các bảng, nạp dữ liệu vào và lấy dữ liệu ra khỏibảng dữ liệu của ORACLE Server.

II.1.2 Cấu trúc vật lý và logic của oracle Server

CSDL oracle có một lớp vật lý và một lớp logic Lớp vật lý bao gồmtất cả các tập tin nằm trên đĩa, các thành phần của lớp logic ánh xạ dữ liệu

đến những thành phần của lớp logic Vị trí các loại tập tin này không ảnh ởng đến chức năng của CSDL

h-1 Lớp vật lý

Lớp vật lý bao gồm 3 loại tập tin nhĩ phân đó là: các tập tin dữliệu(data file), các tập tin điều khiển (control file), và các tập tin phục hồi(redo log file)

- Tập tin dữ liệu: lu trữ thông tin có trong CSDL, phụ thuộc vào kích

th-ớc, các bảng và các đối tợng khác mà có thể có một hay nhiều tập tin trongmột CSDL Tập tin dữ liệu có kích thớc cố định và không bao giờ tự pháttriển lớn hơn kích thớc ban đầu tạo ra

- Tập tin điều khiển: Mỗi CSDL có ít nhất một tập tin điều khiển các

tập tin này ghi tên của CSDL, vị trí các tập tin dữ liệu và tập tin redo logcùng với các thông tin đồng bộ để đảm bảo rằng chúng luôn hoạt động ănkhớp với nhau

- Các tập tin phục hồi (Redo log): lu giữ các thông tin để phục hồi trong

trờng hợp một hệ thống bị sự cố Các tập tin này ghi lại toàn bộ quá trìnhthay đổi của CSDL Trong trờng hợp h hỏng nhng không mất dữ liệu Oracle

có thể sử dụng những thông tin trong tập tin redo log một cách tự động màkhông cần đến sự can thiệp của ngời quản trị CSDL

2 Lớp logic

Lớp logic bao gồm các yếu tố sau:

- Một hay nhiều không gian bảng (tablespace)

- Các lợc đồ CSDL (database schema) bao gồm nhiều đối tợng nh bảng(table), chỉ mục (idex)

Mỗi lợc đồ thuộc về một tài khoản ngời sử dụng đợc xác định bởi tênngời sử dụng (username) và mật khẩu của ngời sử dụng (password) duy nhất

đối với CSDL

2.1 Không gian bảng và các tập tin dữ liệu

CSDL đợc chia thành một hay nhiều mẫu logic gọi là không gianbảng Một không gian bảng bao gồm một hay nhiều tập tin dữ liệu vật lý, ng-

ợc lại một tập tin dữ liệu vật lý chỉ thuộc vào một không gian bảng Trongquá trình tạo CSDL Oracle tự động tạo không gian bảng hệ thống (tablespacesystem) đó là nơi chứa từ điển dữ liệu của toàn bộ CSDL Trong quá trình tạotập tin dữ liệu ta có thể để nó ở không gian bảng hệ thống hoặc không gianbảng của riêng mình tạo ra

2.2 Lợc đồ CSDL (Schema CSDL)

Một lợc đồ kết hợp với một ngời sử dụng CSDL, một lợc đồ là một tậphợp các lợc đồ sau: bảng, chỉ mục, nhóm, bí danh Các đối tợng lợc đồ làcác cấu trúc lu trữ dữ liệu logic Ta sẽ xét một số đối tợng của lợc đồ:

- Bảng (table): là đơn vị cơ bản lu trữ dữ liệu trong oracle, dữ liệu đợc

lu trữ thành các hàng và các cột, mọi thao tác đối với bảng đều đợc thực hiệngiống nh những CSDL quen thuộc đã học

Trang 8

- Tổng quan (View): một view là sự hiện thị dữ liệu chứa trong một hay

nhiều bảng, một view là một bảng ảo nó lấy kết xuất từ một truy vấn và nó

đ-ợc thao tác giống nh một bảng

- Bí danh (Synonym): Nó là một bí danh của bất kỳ một bảng hay

view Nó chỉ là một định danh trong từ điển dữ liệu, chúng thờng đợc sửdụng để che tên và chủ của đối tợng, đơn giản hoá câu lệnh SQL cho ngờidùng

- Chỉ mục (Index): là cấu trúc tuỳ chọn kết hợp với bảng hoặc là tập

hợp các bảng Một Index đơn thuần chỉ là một đờng truy xuất nhanh đến dữliệu, nó chỉ ảnh hởng đến tốc độ thực hiện Khi cho một giá trị dữ liệu đợcindex thì index trỏ trực tiếp vào vị trí của hàng chứa giá trị đó Oracle tự

động duy trì index khi nó đợc tạo, chỉ mục hoàn toàn độc lập về mặt logic vàvật lý với dữ liệu trong bảng kết hợp Ta có thể tạo ra và xoá chỉ mục bất cứlúc nào mà không ảnh hởng đến bảng gốc và các chỉ mục khác

- Nhóm (Cluster): Là một phơng pháp tuỳ chọn để lu trữ dữ liệu bảng.

Một cluster là một nhóm các bảng có cùng các khối dữ liệu do chúng cóchung các cột và thờng sử dụng chung với nhau

- Thủ tục lu trữ và hàm (Store procedre và function): nó là một tập hợp

các câu lệnh SQL đợc nhóm với nhau nh một tập tin thực thi để thực hiệnmột tác vụ nào đó

- Các trigger CSDL (database): Một database trigger là một thủ tục

chạy tự động khi một sự kiện xảy ra nh chèn, xoá, chọn dữ liêu từ bảng

3 Các khối, vùng và đoạn dữ liệu (Data Block, Extent và Segment)

Oracle định vị không gian CSDL logic cho tất cả dữ liệu trong mộtCSDL Các đơn vị của không gian CSDL là các khối, vùng và đoạn dữ liệu

Đơn vị không gian logic nhỏ nhất là data block, mỗi data block tơngứng với một số byte không gian CSDL

Mức kế tiếp của không gian CSDL logic là vùng (extent) Một vùng làmột số xác định các khối dữ liệu liên tục đợc định vị để chứa một loại thôngtin xác định

Mức lu trữ dữ liệu cao hơn vùng là đoạn (segment), một đoạn là mộttập hợp các vùng đợc định vị cho một loại cấu trúc CSDL đặc biệt

Oracle định vị các segment theo đơn vị một segment, khi các extent

đang có của một segment đầy, Oracle định vị một extent khác cho segment

đó do đó các extent không hẳn nằm liên tục trên đĩa

4 Cấu trúc bộ nhớ và các tiến trình

4.1 Cấu trúc bộ nhớ

Oracle tạo ra và sử dụng các cấu trúc bộ nhớ để hoàn thành một số côngviệc, các cấu trúc bộ nhớ cơ bản kết hợp với oracle là: vùng toàn cục hệthống (system globol area) và vùng toàn cục chơng trình (program globolarea)

Oracle instance là một thể hiện của Oracle nó là sự kết hợp các tiếntrình và cấu trúc bộ nhớ của oracle Server Một thể hiện của Oracle gồm hailoại tiến trình: các tiến trình ngời dùng và các quá trình Oracle Một tiếntrình ngời dùng thực hiện mã của một chơng trình ứng dụng hay một công cụ

Trang 9

Oracle, Còn các tiến trình Oracle gồm các tiến trình Server thực hiện các tiếntrình ngời dùng và các tiến trình chạy ngầm để duy trì công việc của Oracle.

a System globol area: Là vùng nhớ dùng chung chứa dữ liệu và các

thông tin điều khiển của một thể hiện Oracle Nó bao gồm vài cấu trúc bộnhớ chính:

- Bộ đệm CSDL (data buffer): nó dùng để lu trữ những khối dữ liệu

th-ờng đợc sử dụng nhất, tập hợp các bộ đệm trong một thể hiện gọi là databuffer cache, buffer cache chứa các khối dữ liệu đã biến đổi cũng nh chabiến đổi

- Bộ đệm redo log (redo log buffer): nó lu trữ các mục redo các quá

trình thay đổi của CSDL, các mục redo này đợc lu trong tập tin redo logonline có kích thớc không đổi và nó đợc sử dụng khi CSDL có sự cố

- Các vùng chia sẻ (shared pool): nó chứa các cấu trúc bộ nhớ dùng

chung nh các vùng SQL dùng chung Một vùng SQL dùng chung đợc dùng

để xử lý mọi lệnh SQL xác định đa tới CSDL

- Các cursor: chỉ ra trạng thái hiện tại của câu lệnh SQl.

b Program globol area: Là bộ nhớ đệm kiểm soát thông tin của một quá

trình Server và chứa dữ liệu Nó đợc tạo ra khi một tiến trình Server đợc khởitạo

4.2 Cấu trúc các tiến trình

Một tiến trình là cơ chế trong hệ điều hành mà có thể thực hiện mộtchuỗi các bớc Một tiến trình (process) thờng có vùng nhớ riêng để chạy.Oracle Server có hai tiến trình chính: tiến trình ngời dùng và tiến trìnhOracle

a Tiến trình ngời dùng (client): Một tiến trình ngời dùng đợc tạo ra và

duy trì để thực hiện mã phần mền cua một chơng trình ứng dụng hay công cụcủa oracle

b Cấu trúc tiến trình của Oracle: các tiến trình của Oracle đợc gọi bởi

các tiến trình khác để thực hiện các chức năng của tiến trình gọi, các loại tiếntrình Oracle bao gồm các tiến trình Server và các tiến trình chạy ngầm

- Các tiến trình Server: Oracle tạo ra các tiến trình Server để quản lý

các yêu cầu từ các quá trình kết nối của ngời dùng Một tiến trình Server cónhiệm vụ tơng tác với Oracle để thực hiện các yêu cầu của tiến trình ngờidùng kết hợp

- Các tiến trình background: Oracle tạo ra một tập các tiến trình

background cho mỗi thể hiện, chúng hợp nhất các chức năng mà lẽ ra sẽ đợcquản lý bởi nhiều chơng trình Oracle chạy cho mỗi tiến trình ngời dùng Mỗithể hiện của Oracle có thể sử dụng một vài tiến trình background sau:

 Database writer: Ghi các khối đã biến đổi từ bộ đệm dự liệu đến các tậptin dữ liệu chỉ cần một database writer là đủ cho hầu hết các hệ thống

 Log writer (LGWR): Log writer ghi các mục redo log vào tệp dữ liệuredo log, khi một chuyển tác đợc xác lập và bộ đệm redo log đầy logwriter ghi các mục redo log vào các tập tin redo log online

 Checkpoint (CKPT): ở một thời điểm xác định tất cả các bộ đệm dữ liệu

đã đợc biến đổi trong SGA sẽ đợc ghi vào tập tin dữ liệu bởi databasewriter, sự kiện này gọi là một checkpoint

Trang 10

 System monitor (SMON): thực hiện phục hồi thể hiện lúc khởi tạo thểhiện, trong một hệ thống nhiều thể hiện SMON của một thể hiện cũng cóthể thực hiện việc phục hồi thể hiện bị hỏng đồng thời xoá các segmenttạm không dùng nữa và nối lại các extern trống trên đĩa để tạo không gianliên tục giễ định vị.

 Process monitor (PMON): thực hiện việc phục hồi quá trình khi một quátrình ngời dùng bị hỏng, nó có trách nhiệm xoá bộ nhớ và giải phóng cáctài nguyên quá trình đang sử dụng

 Archiver (ARCH): chép các tập tin redo log online vào bộ nhớ lu trữ khichúng bị đầy

 Recoverer (RECO): đợc sử dụng để phân giải các chuyển tác phân tán

đang bị treo do sự h hỏng mạng hay hệ thống CSDL phân tán Vào cáckhoảng đã định nó cố gắng kết nối CSDL từ xa và thực hiện commit hayrollback của bất kỳ chuyển tác nào đang bị treo

 Giao diện chơng trình: là cơ chế giao tiếp của một tiến trình ngời dùng vàmột quá trình Server nó cung cấp phơng tiện giao tiếp chuẩn giữa mộtcông cụ hay một ứng dụng client bất kỳ

5 Giao dịch (transaction), commit và rollback

Sự thay đổi dữ liệu sẽ không đợc ghi lại cho đến khi ngời dùng quyết

định tờng minh bằng các lệnh chèn, xoá, sửa đổi có hiệu lực Một giao dịch

là một đơn vị làm việc bao gồm một hay nhiều lệnh SQL, nó bắt đầu khi

ng-ời dùng kết nối vào CSDL và kết thúc khi một commit hay một rollback đợcphát ra Việc commit một chuyển tác tạo sự thay đổi thờng trực toàn bộchuyển tác vào CSDL, và một khi đã commit sự thay đổi không thể đảo ng-

ợc Trái lại rollback đảo lại toàn bộ sự thêm, sửa đổi, xoá trong chuyên tác,những thay đổi này không thể commit

6 Các tác vụ khởi tạo (startup) và chấm dứt (shutdown)

Một CSDL Oracle chỉ có sẵn cho ngời dùng khi Server đợc startup vàCSDL đợc mở nó đợc thực hiện bởi ngời quản trị mạng, quá trình đó thựchiện nh sau:

- Khởi động một thể hiện của Oracle

- Kết nối (mount) CSDL

Việc shutdown một thể hiện và CSDL gồm các bớc:

- Thu hồi kết nối (dismount) CSDL

- Shutdown thể hiện của Oracle

7 Bảo mật CSDL

Các hệ thống CSDL nhiều ngời sử dụng nh Oracle thì việc bảo mật làhết sức quan trọng, các cơ chế bảo mật bao gồm:

- Ngăn cản sự truy xuất dữ liệu trái phép

- Ngăn cản sự truy xuất trái phép các lợc đồ

- Điều khiển việc sử dụng đĩa

- Điều khiển việc sử dụng không gian hệ thống

- Giám sát các hành động của ngời dùng

Tính bảo mật của CSDL có thể phân ra làm hai loại riêng biệt:

Trang 11

- Bảo mật hệ thống bao gồm đều khiển việc truy xuất và sử dụngCSDL:

 Sự đăng nhập hợp lệ của username và password

 Lợng không gian đĩa sẵn có cho mỗi schema của ngời sử dụng

 Giới hạn về tài nguyên cấp cho mỗi user

- Bảo mật hệ thống kiểm tra:

 user có quyền truy cập vào CSDL hay không?

 Sự giám sát dữ liệu có hoạt động hay không?

 Các tác vụ hệ thống nào user có thể thực hiện?

- Bảo mật dữ liệu bao gồm:

 Xác định quyền user với một đối tợng schema và những tác vụ nhất định

mà user có thể thực hiện trên đối tợng schema

 Các tác vụ nếu có đợc giám sát đối với mỗi đối tợng hệ thống

b Bảo mật vùng (Domain Security)

Mỗi user có một domain security nó bao gồm:

 Các hoạt động có sẵn nh role của user

 Các không gian đĩa (quota tablespace) có sẵn cho user

 Giới hạn tài nguyên hệ thống

7.2 Đặc quyền (Privilege)

Một đặc quyền thực hiện một loạt các câu lệnh SQL đặc biệt, đặcquyền bao gồm:

a Đặc quyền hệ thống (privilege): cho phép đối tợng thực hiện một

hành động mức hệ thống, đặc quyền này rất mạnh nên hầu hết chỉ dành chocác nhà quản trị hệ thống và các nhà phát triển ứng dụng

b đặc quyền trên đối tợng (schema): Nó thờng đợc gán cho ngời

dùng cuối để thực hiện một số hành động trên các đối tợng schema nh chèn,xoá , sửa các hàng của bảng

c Cấp đặc quyền: đặc quyền đợc cấp cho các user để họ thực hiện biến

đổi dữ liêu trong một CSDL, privilege đợc cấp theo hai cách:

 Các privilige cấp cho các user một cách tờng minh

 Các privilige đợc gán cho các role, đó là nhóm các quyền đợc đặt tên vàsau đó role có thể đợc gán cho một user

d Role: Là một nhóm các privilige có liên quan đợc đặt tên để cấp cho các

user hay các role khác

e Các xác lập lu trữ và quota: Oracle cung cấp các biện pháp để định

hớng và giới hạn việc sử dụng không gian CSDL của từng user, bao gồmkhông gian (tablespace) mặc định, không gian tạm thời, không gian quota:

Trang 12

- Tablespace mặc định: Mỗi user kết hợp với một tablespace mặc định,khi tạo một bảng mà không chỉ định cụ thể tablespace thì tablespace mặc

định sẽ đợc sử dụng nếu user có quyền tạo các đối tợng schema và đợc cấpquota trong tablespace

- Tablespace tạm thời: Mỗi user có một table space tạm thời, khi userthực hiện một câu lệnh SQL mà yêu cầu tạo ra một segment tạm thời thìtablespace tam thời sẽ đợc sử dụng, nó định vị tất cả các segment tạm thờivào một tablespace riêng

- Các giới hạn lu trữ (quota) tablespace: Oracle có thể giới hạn mộtkhông gian đĩa định sẵn để cung cấp cho các đối tợng trong một schema Cácquota có thể xác lập cho từng tablespace có sẵn của user

II.1.3 Mô hình kết nối trong Oracle Server

Trong phần này ta xây dựng một mô hình khái niệm để hiểu cáchclient và Server trong Oracle Server giao tiếp với nhau

Phần mềm client gửi yêu cầu cho Oracle Server và nhận dữ liệu từServer, giao tiếp này phải đi qua nhiều tầng liên kết trên client, từ tầng ứngdụng xuống tầng mạng, và ở phía Server thì nó đi theo chiều ngợc lại Ta coicác tầng này nh là các giải pháp cho 2 vấn đề sau:

- Vấn đề thứ nhất là truyền thông cơ sở dữ liệu: Các hệ quản trị cơ sở dữ

liệu, trong đó có Oracle Server phải phục vụ các mục đích chung, trong khi

đó các chơng trình client lại phục vụ cho một mục đích đặc biệt nào đó Làmthế nào mà các client rất khác nhau này có thể giao tiếp đợc với Server? Câutrả lời sẽ là tầng truyền thông cơ sở dữ liệu

- Vấn đề thứ hai là truyền thông mạng: Khi bạn đã có một ngôn ngữ

hay giao thức chung giữa client và Server, giao tiếp qua mạng giữa chúng sẽ

nh thế nào? Nếu chỉ có client phát ra yêu cầu hay Server sinh ra kết quả thìkhông đủ để coi là một giao tiếp mạng Giải pháp cho vấn đề này là th việnmạng

1 Truyền thông giữa tiến trình client và tiến trình Server

Mục đích của kiến trúc client/Server là phân tán các xử lý ứng dụnggiữa client và máy chủ cơ sở dữ liệu Nhiệm vụ của Server: truy nhập vàquản lý dữ liệu, cung cấp dịch vụ thực hiện các yêu cầu từ client Nhiệm vụcủa client: nhận dữ liệu đầu vào từ ngời sử dụng, biểu diễn dữ liệu trả về từServer Do cả client và Server thực thi tơng tác đồng thời nên cần có phơngpháp truyền thông giữa các tiến trình client và tiến trình Server, đó là cơ chếtruyền thông liên tiến trình (IPC-interprocess communication)

Hình 3 :Mô hình giao tiếp giữa client và Server

Interprocess

Communicati on

oracle Server

Client

Netword Componens NetwordComponens

Physical Netword

Trang 13

Có hai loại IPC qua mạng: loại theo liên kết và loại quảng bá Truyềnthông liên tiến trình theo liên kết là giao tiếp hai chiều giữa client và Server,liên kết này chỉ tồn tại trong một khoảng thời gian nhất định Truyền thôngclient - Server trong Oracle Server là loại theo liên kết.

Phần mềm CSDL client cung cấp giao diện với ngời sử dụng Nó phảithực hiện mở một kết nối và một đờng truyền tới cơ sở dữ liệu trên máy chủ.Chỉ khi mở đợc kết nối, client và Server mới giao tiếp đợc với nhau Client

có thể tạo kết nối tới một hoặc nhiều Server tuỳ theo yêu cầu của từng ứngdụng Server phải điều khiển cùng một lúc nhiều kết nối của các client khácnhau, mối kết nối là một tiến trình riêng biệt

2 Tabular Data Stream TDS

Phần mềm client không thể giao tiếp trực tiếp với hệ quản trị cơ sở dữliệu trên máy chủ Nếu DBMS giao tiếp trực tiếp với các ứng dụng client thìvới mỗi ứng dụng client mới lại phải viết lại DBMS Do vậy, mỗi DBMS cóquy tắc riêng cho các client muốn thiết lập giao tiếp với nó, đợc gọi là giaothức dòng dữ liệu mức logic - logical data stream protocol (còn gọi là giaothức truyền thông mức thấp - low level communications protocol)

Truyền thông từ client tới Server: giao thức TDS thực hiện nhúng cácthẻ giới hạn dòng dữ liệu vào trong các câu lệnh client gửi tới Server

Truyền thông từ Server tới client: Server gửi kết quả tới client, các thẻTDS mô tả cấu trúc của tập dữ liệu trả về, thông báo lỗi, trạng thái của yêucầu

Trong trờng hợp cả yêu cầu của client và kết quả trả về của Server đều

ở dạng văn bản thì TDS trộn lẫn văn bản và thẻ TDS miêu tả văn bản

Bạn có thể dùng dich vụ giám sát mạng (Network Monitor) của Windows

2000 Server để xem dữ liệu truyền giữa SQL và client thông qua TDS

Hình 4 : Client và Server giao tiếp với nhau thông qua TDS

3 Database API Components

Tuy đã có giao thức TDS nhng các ứng dụng client vẫn cha thể giao tiếp

đợc với DBMS Vì nếu ứng dụng client giao tiếp với DBMS thông qua giaothức TDS thì nó cần đảm nhiệm chức năng dịch các yêu cầu của nó thànhdòng dữ liệu TDS, giải mã dòng dữ liệu TDS để nhận kết quả trả về PhíaServer cần có chức năng dịch ngợc trở lại, từ dòng dữ liệu TDS thành các yêucầu của client, từ kết quả trả về cho client thành dòng dữ liệu TDS Đáp ứng

Tabular Data Stream (TDS)

oracle Server

Client

Netword Componens NetwordComponens

Physical Netword

Open Data Services Database API

Components

Trang 14

yêu cầu đó, các thành phần cơ sở dữ liệu API đa thêm một tầng trừu tợnglàm nhiệm vụ dịch dữ liệu cho giao thức bậc thấp TDS và thể hiện giao diệnchuẩn cho client Oracle Server có 3 loại giao diện khác nhau: ODBC (OpenDatabase Connectivity - kết nối cơ sở dữ liệu mở), OLE DB, DB –Library(th viện cơ sở dữ liệu) trong đó ODBC là loại phổ biến với các ứng dụng hiệnnay, DB –Library là loại đầu tiên còn OLE DB là loại mới xuất hiện cùngOracle Server 8.0.

Hình 5 : Các thành phần giao tiếp với TDS

4 Các thành phần của IPC

Nh phần trên đã giới thiệu, TDS chỉ là một giao thức mang tính logic

về mặt định dạng dữ liệu, nó không có cơ chế duy trì kết nối giữa client vàServer cũng nh giao diện giao tiếp với tầng mạng ở cả client và Server Ngaytrong Database API Components và Open Data Services cũng không baogồm các chức năng tơng tác với tầng mạng Bởi vậy, cần có một thành phần

đảm nhận chức năng giao tiếp mạng mới có thể thực hiện truyền thông giữacác tiến trình client và Server, đó chính là IPC Components

Tầng IPC Components của client giao tiếp với tầng IPC Componentscủa Server để khởi tạo, duy trì, giải phóng kết nối cũng nh thực hiện gửi vànhận các yêu cầu, kết quả Tầng IPC Components nhận dữ liệu dạng TDS từtầng Database API Components và Open Data Services gói thành các gói tintruyền qua tầng mạng vật lý kết nối giữa client và Server Khi nhận các góitin từ tầng mạng vật lý, IPC Components thực hiện cắt bỏ các thông tinmạng, trả lại dữ liệu ở dạng TDS cho tầng Database API Components vàOpen Data Services

oracle Server Open Data Services Client Aplication

Client Netword library Protocol Stack

VBSQL RDO

OLE DB

Provider

ADO

DB Library

ODBC Driver TDS

Communtcation

Server IPC Components

Open Data Services

oracle Server

Client IPC

Components

data

Trang 15

Hình 6: Vai trò của tầng IPC

5 Mô hình kết nối của ORACLE Server

Bây giờ ta đã có một mô hình chi tiết về quá trình truyền thông client Server trong ORACLE Server: Bắt đầu ứng dụng, client đa ra các yêu cầuliên kết, các lệnh cơ sở dữ liệu tới trình điều khiển cơ sở dữ liệu (ODBC,OLE DB, DB - Library) Các trình điều khiển dịch các yêu cầu của clientthành dữ liệu dạng TDS để gửi cho Server Khi trình điều khiển cơ sở dữ liệuyêu cầu kết nối, tầng th viện mạng sẽ chọn cơ chế IPC để thiết lập cách thứcgiao tiếp với Server Ví dụ: Khi phần mềm client chạy trên máy chủ (tức là

-hệ thống hoạt động trên một máy), kết nối giữa client và Oracle Server đợcthiết lập thông qua cơ chế named pipes Sau khi kết nối đợc thiết lập, trình

điều khiển cơ sở dữ liệu gọi đến các hàm trong th viện mạng để chuyển dữliệu dạng TDS thành các gói tin mạng, đẩy chúng vào ngăn xếp (stack) trongmạng, truyền qua đờng truyền vật lý

Vì tất cả các th viện mạng đều có chung một giao diện với trình điềukhiển cơ sở dữ liệu nó có thể sử dụng bất kỳ một th viện nào để kết nối vớiORACLE Server

Datta Client Application oracle Server

ODS(Open Data Services)

IPC Mechanism (name pipes,RPC,Sockets)

IPC Mechanism

(name pipes,RPC,Sockets)

Protocal Stack Protocal Stack

Database API Library

OLE DB ODBC DB-Libraray

Client-stite netword library

Named Multi- TCP/IP

Pipes Protocal Sockets

Client-stite netword library Named Multi- TCP/IP Pipes Protocal Sockets

Trang 16

Hình 7: Mô hình kết nối của Oracle Server 8.0

Với mô hình kết nối nh trên, các ứng dụng theo mô hình client/Server

có thể chạy trên nhiều mô hình mạng khác nhau

6 Kết nối Server - to Server

Cấu trúc đóng gói của các tầng truyền thông nh trên tạo điều kiệnthuận lợi cho việc kết nối giữa các Server Mô hình kết nối dựa trên nguyêntắc: bộ xử lý câu hỏi của Server này đợc thực hiện nh một client đối với mộtServer khác

Hình 8: Mô hình kết nối Server to - Server

Trong Oracle Server , công cụ hỏi và công cụ lu trữ giao tiếp với nhauthông qua giao diện OLE DB, nhờ đó nó có thể kết nối tới nhiều nguồn cơ sởdữ liệu khác nhau nh Jet, Site Server, Index Server

ODBC Driver

Other OLE DB Provider

ODBC OLE DB Provider

SQL Server OLE DB Provider

oracle OLE DB Provider Other SQL

Sources

Rilational Engine OLE DB

Netword Libraries Netword Components Data

Trang 17

Hình 9: Giao diện kết nối OLE DB tới các nguồn cơ sở dữ liệu khác nhau

II.1.4 Quản trị Oracle Server

1 Cài đặt Oracle

Có rất nhiều phiên bản của Oracle có thể thích hợp với nhiều loại cấuhình máy khác nhau, tuỳ theo cấu hình máy của bạn và khả năng khai thácứng dụng mà bạn lựa chọn phiên bản thích hợp Trong phạm vi đề tài này tôilựa chọn phiên bản Enterprise của Oracle cài đặt trên Windown 2000 Server

2.1 Các môi trờng làm việc của Oracle

Oracle có hai môi trờng làm việc đó là SQL*PLUS và EterpriseManager Trong đó SQL*PLUS là môi trờng chuẩn nó cung cấp giao diệndòng lệnh rất thuận tiện cho ngời dùng Trái lại môi trờng EnterpriseManager cung cấp giao diện đồ họa, nó cung cấp một cách nhìn tổng thể về

hệ thống trong đó cây phân cấp và các hình ảnh đồ họa cùng với các quan hệgiữa chúng đợc thể hiện

Khi khởi động SQL*PLUS hay Enterprise Manager đòi hỏi bạn phải

đăng nhập Tên ngời sử dụng/mật khẩu do DBA cung cấp Với giao diện mànhình đăng nhập nh sau:

Sau khi đăng nhập đối với môi trờng SQL*PLUS ta có thể gõ lệnh tạidấu nhắc SQL> Còn đối với môi trờng Enterprise Manager ta chỉ việc clickchuột vào các chức năng tuỳ thuộc vào công việc mà bạn muốn thực hiện

2.2 Quản lý một Oracle Instance

a.Tập tin tham số Init.ora

Trang 18

Mỗi thể hiện của CSDL là một tập hợp gồm các tiến trình nền và cấutrúc bộ nhớ mà Oracle sử dụng, mỗi thể hiện đó phải có một tập tin tham sốInit.ora Từ tập tin này thể hiện có thể nhận lại các tham số để chạy, nó đợcOracle sử dụng trong lần khởi động đầu tiên của một thể hiện.

Tập tin Init.ora đợc dùng để chỉ định:

- Tổng số không gian lu trữ đợc cấp phát cho vùng nhớ Oracle

- Segment Rollback nào đợc dùng

- Các cài đặt về ngôn ngữ sử dụng

- Các cài đặt để Oracle chạy trong chế độ máy chủ song hành

- CSDL và tập tin controll đợc dùng

- Khi nào sẽ tạo điểm kiểm tra

- Giới hạn về cơ cấu kiểm tra CSDL

- Sẽ khởi tạo tiến trình nền không uỷ nhiêm nào

Các tham số:

Tập tin tham số của oracle có dạng INIT xxxx.ORA, trong đó xxxx làtên CSDL mà tập tin tham số này liên hệ, thứ tự các tham số trong tập tin làkhông quan trọng và các tham số là tuỳ chọn Một số tham số cơ bản

Background_dump_dest Xác định nơi tiến trình nền đặt các file để ghi

vào (LGWR,DBW)Compatibke Phiên bản Server tơng thích với instance

Control_file Tên của các control_file

Db_block_Buffers Số lợng blocks cached trong SGA

Db_Name Định danh CSDL từ 8 ký tự trở xuống

Shared_pool_Size Kích thớc của Shared_pool

User_Dump_Dest Các file user debug đợc tạo thay cho tiến trình

ngời dùng

IFILE Tên của tham số đợc include vào file tham số

hiện thờiLog_Buffer Số Byte cấp cho vùng đệm redo log

Processes Kiểm tra số tiến trình lớn nhất của hệ điều

hành có thể nối với CSDLSQL_Trace Chỉ định tập tin SQL sẽ thực hiện khi tạo

CSDL

Tạo và lu các File tham số:

Kích hoạt Oracle Enterprise Manager Console/Truy nhập vào với mậtkhẩu hệ thống/Kích hoạt oracle instance manager, File tham số đợc lu giữtrong th mực %Oracle_home%\admin\sid\pfile Cho phép chúng ta xem xét

và sửa các tham số

b Khởi động và đóng CSDL (Startup và Shutdown)

Một CSDL Oracle sẽ sẵn sàng khi khởi động Oracle instance và mởmột database Các bớc khởi động:

Trang 19

- Khởi động

- Kết nối với CSDL (Mount the database)

- Mở CSDL (Open the datatbase)

Trong môi trờng SQL*PLUS có thể khởi động CSDL theo tham biếncủa lệnh Startup, bao gồm:

- Startup nomount: Khởi động instance không kết nối CSDL

- Startup mount: Khởi động instance mount database nhng vẫn đóngnó

- Startup open: Khởi động instance và mở CSDL

Quá trình khởi động Oracle lấy các tham số mặc định trong file tham

số phục vụ cho việc khởi tạo Cấp phát vùng nhớ SGA và khởi động các tiếntrình nền

Shutdown CSDL gồm 3 giai đoạn:

- Thu hồi kết nối

Để tắt CSDL ta dùng lệnh Shutdown với các tham số

- Normal:Trong quá trình thực hiện lệnh không có một kết nối mới nàocho phép, database sẽ đợi cho đến khi kết nối kết thúc

- Immediate: Kết nối chấm dứt ngay lập tức, các thao tác xử lý chacommit đều bị rollback

- Abort: Kết nối chấm dứt và các thao tác cha commit thì không bịrollback

c.Tạo CSDL

Trớc khi tạo CSDL ta phải Connect bằng mật khẩu của DBA, có thểtạo CSDL bằng công cụ Database Configution Assistant hoặc Createdatabase:

Sử dụng Database cofigution Assistant: Cho phép tạo CSDL ở hai chế

độ:

- Typical: Tự động cài đặt CSDL chuẩn cùng với các file tham số khởitạo mặc định

- Customer: Cho phép tạo CSDL tuỳ theo ý muốn

Sử dụng cú pháp câu lệnh CREATE trong môi trờng SQL*PLUS:

CREATE DATABASE [database]

Trang 20

[CHARACTER SET charset ][NATIONAL SET charset ][NATIONAL CHARACTER SET charset]

[DATAFILE filespec [autoextend_clause]

[, filespec [autoextend_clause] ]]

filespec :== 'filename' [SIZE integer][K/M] [REUSE]autoextend_clause:==[ AUTOEXTEND {OFF

/ON [NEXT integer [K/M]]

[MAXSIZE {UNLIMITED/ integer[K/M]}}}]

Trong đó:

Database: tên CSDL đợc tạo

CONTROLFILE REUSE: tên file tham số đã tồn tại đợc sử dụngLOGFILE GROUP : tên log file đợc sử dụng

MAXLOGFILES: số lợng tối đa log file group cho CSDL

MAXLOGMEMBERS: số lợng tối đa log file member cho một logfile group

MAXLOGHISTORY: số lợng tối đa các redo log trong một groupDATAFILE filespec: tên file dữ liệu đợc sử dụng

MAXSIZE

MAXDATAFILES: kích thớc khởi tạo của một database

MAXINSTANCES: số lợng lớn nhất các instance có thể đồng thờimount và open CSDL

AUTOEXTEND: cho phép hoặc không mở tự động các file dữ liệu

2.3 Quản lý các Server

Công cụ quản lý chính cho Oracle Server là Enterprise Manager, đó làmột tiện ích giàu tính đồ họa có khả năng quản lý nhiều máy ORACLEServer Có thể dùng Enterprise Manager để đặt cấu hình cho một OracleServer cụ thể và quản lý các cơ sở dữ liệu của nó

2.4 Quản lý nhiều cơ sở dữ liệu

Tất cả dữ liệu của Oracle Server đợc lu trong các cơ sở dữ liệu Mộtcơ sở dữ liệu là một tập các bảng và những đối tợng khác dựa trên các bảng

đó Bảng chứa dữ liệu đợc tổ chức theo hàng và cột, các đối tợng ràng buộchoặc thao tác trên dữ liệu

2.5 Các đối tợng của cơ sở dữ liệu

Bảng là thành phần cơ sở của cơ sở dữ liệu vì tất cả dữ liệu của nó đều

đợc lu trong các bảng Mỗi bảng chỉ thuộc về một cơ sở dữ liệu và mỗi cơ sởdữ liệu cũng chỉ thuộc một Oracle Server Một cơ sở dữ liệu gồm các đối t-ợng sau:

- Sechema (Biểu đồ cơ sở dữ liệu): các biểu đồ về cơ sở dữ liệu mà bạn

tạo ra

- Tables (Các bảng): các bảng hệ thống và bảng dữ liệu của cơ sở dữ

liệu đó

- Views (khung nhìn): những phần trích ra từ cơ sở dữ liệu đợc lu lại và

có thể truy nhập nh đối với các bảng

Trang 21

- Stored procedures (các thủ tục lu trữ): các lệnh giao tác SQL đã đợc

biên dịch dùng để quản lý dữ liệu

- Users (ngời sử dụng): tên những ngời sử dụng đợc phép truy nhập các

đối tợng cơ sở dữ liệu

- Roles (vai trò): vai trò của ngời sử dụng trong cơ sở dữ liệu.

- Rules (luật): các ràng buộc trên dữ liệu áp dụng cho các bảng.

- Defaults (các mặc định): các luật mặc định có thể áp dụng cho các cột

của bảng (không tuyệt đối)

2.6 Oracle Server làm việc với các cơ sở dữ liệu nh thế nào?

b Mỗi phép cài đặt Oracle Server gồm 2 loại cơ sở dữ liệu: cơ sở

dữ liệu hệ thống và cơ sở dữ liệu do ngời sử dụng tạo ra

Cơ sở dữ liệu hệ thống gồm các cơ sở dữ liệu nh master, model, msdb

và tmpdb còn cơ sở dữ liệu ngời sử dụng gồm pubs- cơ sở dữ liệu ví dụ vàcác cơ sở dữ liệu mới do chính ngời dùng tạo ra

c Mỗi cơ sở dữ liệu Oracle Server gồm 3 loại file: file dữ liệu (chứa

tất cả các bảng) và file redo log (ghi lại lộ trình giao dịch transaction log),file control (điều khiển các hoạt động của hệ thống)

File redo log này ghi lại lịch sử của tất cả các giao dịch trên cơ sở dữliệu Mọi thay đổi đối với dữ liệu đều đợc coi là giao dịch và Oracle Server

sẽ ghi nhận những thay đổi đó vào file redo log trớc khi áp dụng thay đổi đólên dữ liệu Khi Oracle Server ghi vào file redo log thì nó sẽ ghi trực tiếp vào

đĩa chứ không qua bộ nhớ cache, trái lại các thay đổi dữ liệu đợc thực hiệnthông qua bộ nhớ cache

Vai trò của file redo log: nếu trong hệ thống có sự cố, khi OracleServer khởi động lại, nó có thể khôi phục lại trạng thái trớc đó dựa vào giaodịch Nếu giao dịch cha đợc xác nhận thì Oracle Server sẽ sử dụng lộ trìnhgiao dịch để quay lui Nếu giao dịch đã đợc xác nhận, Oracle Server dùng lộtrình giao dịch để đảm bảo rằng việc ghi dữ liệu đã đợc thực hiện đúng đắn,sau đó nó sẽ thực hiện thay đổi với dữ liệu bị mất sau sự cố nhng vẫn còntrong bộ nhớ Trong khi Oracle Server đang phục hồi dữ liệu thì bạn khôngthể truy nhập vào cơ sở dữ liệu Sau đây là biểu đồ ở mức khái niệm của mộtcơ sở dữ liệu Oracle Server và các file của nó:

Thông tin về lộ trình giao dịch đợc lu trong các file redo log (một hoặcnhiều bản)

Chú ý

- Các cơ sở dữ liệu của Oracle Server đợc lu trong các file chứ khôngphải trong các thiết bị

Trang 22

- Mỗi cơ sở dữ liệu lu dữ liệu của nó trong các file dữ liệu và lu thôngtin về lộ trình giao dịch trong file redo log.

- Các file cơ sở dữ liệu và file redo log có thể tự giãn ra hay co lại, bạncũng có thể chọn điểm bắt đầu co giãn và kích thớc tối đa cho chúng

3 Sao lu và phục hồi dữ liệu

3.1 Khái niệm sao lu

Bản sao lu là một bản sao dữ liệu có định dạng nằm trên đĩa hay băng

từ Bản sao lu của một cơ sở dữ liệu bao gồm các bảng dữ liệu và bảng hệthống hay metadata cần cho việc tái tạo cơ sở dữ liệu

Bạn có thể sử dụng bản sao lu để khôi phục lại dữ liệu trong trờng hợp

có sự cố Trong ORACLE Server, bạn sao lu một cơ sở dữ liệu và bản ghi lộtrình giao dịch (transaction redo log) của nó cùng một lúc

Dữ liệu đợc sao lu ra đĩa hay băng từ trên cùng một máy chủ hoặc vàomáy chủ khác Nếu 2 máy chạy không cùng một lúc, thì có thể sao lu dữ liệucủa máy chạy trớc vào máy sau (máy này hiện không hoạt động) gọi là warmstandby- trong trờng hợp máy thứ nhất có sự cố thì máy thứ hai sẽ đợc đa vào

sử dụng Nếu điều kiện phần cứng cho phép, có thể sử dụng hệ thống bó củaMicrosoft (MCS Microsoft Clustering System) MCS cho phép bó 2 máyOracle Server vào nhau và hoạt động nh một hệ quản trị cơ sở dữ liệu duynhất, trờng hợp máy thứ nhất có sự cố thì máy thứ hai có thể thay thế ngaylập tức Dù phơng pháp bó có thể chống lại những hỏng hóc phần cứng nhngvẫn cần phải sao lu dữ liệu

Transaction redo Log file của Oracle Server

Các kỹ thuật sao lu dữ liệu đều liên quan đến lộ trình giao dịch của cơ

sở dữ liệu đó Lộ trình giao dịch chính là cơ chế thực hiện giao dịch củaORACLE Server Để hiểu đợc những lựa chọn và yêu cầu trong khi sao lu,bạn cần tìm hiểu vai trò của giao dịch và lộ trình giao dịch trong OracleServer

Nh đã biết, mỗi phép sửa đổi dữ liệu trong Oracle Server đợc coi làmột giao dịch, tức là tập các thao tác trong phép sửa đổi đợc coi là một nhómthao tác, giao dịch chỉ thành công khi tất cả các thao tác hoàn thành OracleServer hoàn thành giao dịch bằng việc ghi nhận sự thay đổi dữ liệu vàotransaction redo log rồi thay đổi cơ sở dữ liệu Quá trình đó đợc minh hoạtrong sơ đồ sau:

Oracle Server ghi các thông tin về trạng thái mới và trạng thái cũ củadữ liệu vào transaction redo log Nếu giao dịch bị thất bại giữa chừng do lỗihay bởi lệnh ROLLBACK, Oracle Server sẽ đọc các thông tin trongtransaction redo log, undo các thay đổi bằng cách ghi lại các giá trị cũ vào cơ

sở dữ liệu theo trình tự ngợc lại

Vì Oracle Server không ghi trực tiếp các thay đổi dữ liệu vào đĩa mà ghiqua cache nên trạng thái hiện thời của một cơ sở dữ liệu bao gồm các trangdữ liệu trên đĩa và trang dữ liệu trên cache Một số sự cố làm cho OracleServer không thể ghi đợc những thay đổi từ cache vào đĩa, khi đó dữ liệu trên

đĩa bị mất Trong trờng hợp này, bạn có thể nối các file dữ liệu trên đĩa vớitransaction redo log để nhận đợc trạng thái gần nhất cuả cơ sở dữ liệu trớc sự

cố Kỹ thuật cụ thể thực hiện điều này phụ thuộc vào kiểu sao lu, tuy nhiêncần nhấn mạnh rằng với bất cứ kiểu nào thì transaction log đều cần thiết

Trang 23

3.2 Các kiểu sao lu của Oracle Server

Oracle Server có 4 kiểu sao lu:

a Sao lu đầy đủ: bạn sao lu toàn bộ cơ sở dữ liệu cùng với lộ trình giao

dịch của nó Kiểu sao lu này mất nhiều thời gian và ảnh hởng đến hiệu năngcủa hệ thống; hơn nữa cách sao lu này cũng cha đủ để phục hồi toàn bộ cơ sởdữ liệu (chẳng hạn trong trờng hợp sự cố xảy ra giữa 2 lần sao lu mà có một

số giao dịch đã đợc xác định, tức là client coi nh dữ liệu trong cơ sở dữ liệu

đã đợc cập nhật nhng thực ra nó không thể khôi phục lại đợc) thì phải cầnthêm kiểu sao lu khác nh sao lu sai khác

b Sao lu file: chỉ sao lu một file hay nhóm file Với những cơ sở dữ liệu

lớn tới hàng chục hay hàng trăm gigabyte thì việc sao lu riêng từng file haynhóm file sẽ thuận tiện hơn Khi khôi phục lại các nhóm file, bạn phải ápdụng transaction log để đa cơ sở dữ liệu về trạng thái ổn định

c Sao lu sai khác: bạn sao lu các thay đổi đối với cơ sở dữ liệu tính từ lần

sao lu đầy đủ cuối cùng, đa các thay đổi đó vào transaction log Vì chỉ sao lucác trang dữ liệu bị thay đổi so với lần sao lu đầy đủ trớc đó nên việc sao lu

và khôi phục có phạm vi nhỏ và nhanh hơn sao lu đầy đủ Tuy nhiên nếu chỉ

sử dụng một bản sao lu kiểu này thì khi phục hồi, Oracle Server không thểxác định giao dịch đã kết thúc cha, có những thay đổi nào và nó đã đợc xácnhận cha Cách khắc phục là tạo nhiều bản sao lu tại nhiều thời điểm

d Sao lu transaction redo log: chỉ sao lu transaction redo log của giao

dịch, ghi nhận các giao dịch kể từ lần sao lu (đầy đủ hay sai khác) cuối cùnghoặc từ lần sao lu transaction redo log cuối cùng Kiểu sao lu này có u điểm

là có thể sử dụng transaction redo log để phục hồi dữ liệu tới trạng thái gần

nh tại thời điểm xảy ra hỏng hóc Nếu sự cố không làm cho máy chủ ngnghoạt động thì có thể kịp sao lu một bản transaction redo log trớc khi đóng lại

và khôi phục Tuy nhiên nó cũng có nhợc điểm là bản sao lu transaction redolog không có khả tích luỹ, bạn phải ghi lại tất cả transction log theo đúngtrình tự xây dựng nó

Khi sao lu một cơ sở dữ liệu, bạn chỉ cần dùng bản sao lu sai kháccuối cùng sau lần sao lu đầy đủ, sau đó bạn khôi phục bản sao lu transactionredo log theo đúng trình tự tạo ra nó hoặc các thao tác khôi phục khôngthành công Do tính tích luỹ, các bản sao lu sai khác sau lớn hơn bản trớc,trái lại kích thớc bản sao lu transaction redo log chỉ phụ thuộc vào lợng hoạt

động tính từ lần back up trớc

3.3 Ngăn chặn các sự cố

Các sự cố xảy ra với cơ sở dữ liệu có thể rơi vào các mức độ nghiêmtrọng sau:

a Ngời sử dụng có thể vô tình hay cố ý làm hỏng dữ liệu: Trờng

hợp này bạn sẽ khôi phục lại trạng thái dữ liệu tại một điểm thời gian trớckhi xảy ra sự cố, nếu bạn có càng nhiều bản sao lu càng tốt

b Cơ sở dữ liệu bị sai hỏng: Nếu đó là sai hỏng về các chỉ số, bạn có thể

tạo lại các chỉ số đó Nếu là sai hỏng dữ liệu, thì bạn có thể xuất dữ liệu sangmột bảng khác và xây dựng lại bảng ban đầu mà không cần xây dựng lạitoàn bộ cơ sở dữ liệu Tệ hơn, bạn có thể phải xây dựng lại cả cơ sở dữ liệucho tới điểm sai hỏng

Trang 24

c Lỗi hệ thống: Nếu cả cơ sở dữ liệu không hoạt động đợc hoặc một ổ cứng

bị hỏng, và cả cơ sở dữ liệu bị mất mà transaction log nằm trên một ổ riêngthì bạn có thể dùng nó để xây dựng lại toàn bộ cơ sở dữ liệu ban đầu trên ổmới Tuy nhiên nếu bị mất cả transaction log thì bạn chi có thể phục hồi lạitrạng thái của lần sao lu tốt gần nhất

3.4 Các kỹ thuật sao lu và phục hồi

a Sao lu:

Các kiểu tập tin CSDL khác nhau của Oracle đòi hỏi việc sao lu tơngứng khác nhau Một số tập tin chỉ sử dụng các lệnh sao lu của hệ điều hành,song có loại tập tin đòi hỏi một giao tiếp trực tiếp với CSDL tuỳ thuộc vàoyêu cầu từng tập tin

Có hai kiểu sao lu cơ bản là: Sao lu lạnh (Cold backup) và sao lu nóng(Hot backup):

- Sao lu lạnh (Cold backup): Đóng toàn bộ CSDL và tiến hành sao lu

tất cả các tập tin vật lý bằng hệ điều hành Phơng pháp này không làm xung

đột tính toàn vẹn hay tính nhất quán vì mọi thay đổi trong quá trình sao lukhông xảy ra

- Sao lu nóng (Hot backup): Phơng pháp này cho phép thực hiện sao lu

mà không cần đóng CSDL Trớc hết nó đặt các tablespace vào trạng thái sao

lu Các bớc thực hiện nh sau:

 Đặt tablespace vào trạng thái sao lu

 Sao chép các tập tin vật lý liên quan đến tabelspace

 Tắt trạng thái sao lu của tablespace

 Lặp lại các bớc trên cho đến khi tất cả các tablespace đợc sao lu

 Sao lu các tập tin control

 Sao chép các tập tin redo log trực tuyến

Cụ thể sao lu:

- Tập tin control:

Tập tin control ảnh: đây chỉ là tạo thêm các tâp tin control mà CSDL

sẽ phải ghi các thay đổi vào thay vì chỉ ghi vào một tập tin control, điều nàylàm cho các tập tin control an toàn hơn đảm bảo luôn có nhiều phiên bản trêncác ổ đĩa vật lý khác nhau Ta chỉ thêm vào giá trị các tham sốCOTROL_FILES trong tập tin INIT.ORA các tập tin control ảnh Ví dụ nh:Control_files=(/u03/oradata/norm/control.crt,/u05/oradata/norm/control.crt)

Tập tin control trực tuyến:

ALTER DATABASE BACKUP CONTROLFILE TO

'/u10/admin/norm/arch/bk-cotrol.ctl';

Tập tin truy vết:

ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

- Tập tin redo log: Dùng các lệnh của HĐH

b Phục hồi

- Phục hồi hỏng hóc CSDL:

Tabespace:

 phục hồi CSDL: dùng khi tablespace system bị hỏng

 phục hồi tablespace: nếu có tablespace bị hỏng

Trang 25

 phục hồi tập tin dữ liệu

Recover database;

Recover tablespace users;

Recover datafile '/u03/oradata/norm/rbs01.dbf';

Tập tin control: Để phục hồi từ dữ liệu đã sao lu ta dùng lệnh

Recover database using backup controlfile;

Tập tin redo log:

Kết nối internal Khởi động CSDL (startup mount)

Thực hiện recovery database xuất hiện dấu nhắc gõ

 Connect internal và khởi động lại, CSDL sẵn sànglàm việc

- Phục hồi toàn bộ CSDL:

 Đóng thể hiện CSDL hiện hành

 Hồi phục các tập tin dữ lệu từ đĩa hay băng từ

 Kết nối internal và khởi động lại CSDL

 Thực hiện lệnh: RECOVER DATABASE AUTOMATIC;

3.5 Sao lu OLTP và dữ liệu DSS

ở phần trớc bạn đã biết các cơ sở dữ liệu hiện nay có 2 loại dữ liệuchủ yếu: dữ liệu xử lý giao dịch trực tuyến (OLTP) và dữ liệu của hệ trợ giúpquyết định Chiến lợc khôi phục dữ liệu sau sự cố của mỗi loại dữ liệu làkhác nhau

Nếu cơ sở dữ liệu chứa dữ liệu tức là nó dựa trên giao dịch và khi máychủ bị ngng có thể gây mất dữ liệu Bạn cần cung cấp một hệ thống sao lu để

có thể khôi phục cơ sở dữ liệu lại trạng thái trớc sự cố

Nếu cơ sở dữ liệu chỉ chứa dữ liệu DSS, bạn chỉ cần một bản sao lu vớimột tập dữ liệu DSS ‘sạch’ Nếu có sự cố xảy ra, cơ sở dữ liệu sẽ đợc khôiphục từ bản sao lu đó và đa hệ thống trở lại làm việc

Nếu có cơ sở dữ liệu gồm cả 2 loại, bạn có thể phân dữ liệu thành cácfile và nhóm file, bạn chỉ cần cung cấp các bản sao gần đây của phần OLTP

Để khôi phục hệ thống DSS, bạn chỉ cần sao lu cơ sở dữ liệu nhng với

hệ thống OLTP, bạn phải sao lu cả cơ sở dữ liệu và transaction log

4 An toàn bảo mật dữ liệu

Việc quản lý bảo mật dữ liệu trên Oracle Server bắt đầu từ mật khẩu

đăng nhập (login) Các ứng dụng client dùng login để kết nối với Oracle

Trang 26

Server Login có thể là của Oracle Server hoặc của Windows 2000 Server màOracle Server có thể chứng thực.

Khi một login truy nhập đợc vào một Oracle Server nào đó thì ngời sửdụng có thể thực hiện một trong hai loại tác vụ sau:

Các tác vụ mức Server: các tác vụ quản trị hệ thống đợc chia thànhtừng nhóm các tác vụ gọi là Server roles Theo đó, mỗi đăng nhập ứng vớimột Server role đợc phép thực hiện các tác vụ quản trị tơng ứng mà khôngcần phải dùng đăng nhập của ngời quản trị hệ thống chỉ để thực hiện một vàitác vụ quản trị.Các tác vụ mức cơ sở dữ liệu: dữ liệu đợc lu trữ và truy nhậptheo các database object Mọi đối tợng trong cơ sở dữ liệu đều thuộc mộtthực thể xác định, đợc gọi là database object owner Các chủ đối tợng này đ-

ợc xác định trong cơ sở dữ liệu nh là các database user, mặc dầu không phảitất cả các database user đều phải sở hữu các đối tợng Database user đợc liênkết với database role Database role là nhóm các quyền đợc gán cho databaseuser

Hình10: Hai mức truy nhập của login

Oracle Server cho phép thiết lập nhiều chế độ bảo mật khác nhauthông qua ORACLE Enterprise Manager hoặc SQL*PLUS Ví dụ, bạn có thể

định nghĩa các đăng nhập cho ngời sử dụng mới và sắp xếp vào các nhómngời sử dụng chung mục đích Bạn có thể tiến hành phân quyền sử dụng theotừng nhóm và theo từng ngời sử dụng riêng biệt

4.1 Nhóm ngời sử dụng

Mọi ngời sử dụng trong hệ thống đều thuộc về một nhóm tổng thể cótên là public, tuy nhiên, một ngời sử dụng chỉ có thể nằm trong một nhómduy nhất Các nhóm đợc sử dụng để phân quyền cho nhiều ngời sử dụngchung mục đích Các nhóm đợc lu trong từng CSDL, do đó có thể thêm mới,cập nhật hoặc xoá bỏ các nhóm ngời sử dụng

4.2 Ngời sử dụng

a Tạo ngời sử dụng mới

Bạn có thể thêm ngời sử dụng của một CSDL bằng cách sử dụng thực

đơn Create Users trong môi trờng DBA Studio Khi đó nhập các thông tincần thiết trong hội thoại, phân quyền sử dụng đối với CSDL, và phân ngời sửdụng mới vào một nhóm xác định

Roles Server

Trang 27

Cú pháp tạo ngời sử dụng mới:

CREATE USER use

INDENTIFIED [ BY PASSWORD/ EXTERNALITY]

[DIFAULT TABLESPACE tablespace}

[TEMPORARY TABLESPACE tablespace}

{quota [integer [K/M] UNLIMITED] ON TABLESPACE

{ quota [integer [K/M] UNLIMITED] ON TABLE

SPACE ] ]PASSWORDEXPISE]ACCOUNT {LOCK/

UNLOCK}

PROFILE [profile/deault}]

Trong đó:

 user là: tên ngời sử dụng

 password : là mật khẩu ngời sử dụng

 externality: chỉ ra rằng ngời sử dụng đợc xác nhận bởi hệ điều hành

 identifed: mật khẩu của user

 default tablespace: chỉ định tablespace dành cho user (mặc định làtablespace system)

 temporary tablespace: chỉ ra tablespace tạm cho user trong khi thao tác

 quota: cho phép user sử dụng khoảng trống trên tablespace là bao nhiêu

 profile: thiết lập môi trờng của user

b Thay đổi thuộc tính của user

5.1 Quyền hệ thống (System Privilege)

Có 126 quyền hệ thống, thông tin về system privilege đợc đặt trongview DBA_SYS_PRIVS, thông tin về session hiện thời đợc đặt trong viewSESSION_PRIVS

Trang 28

[WITH ADMIN OPTION]

Trong đó:

 system_priv: quyền đợc gán

 role: tên role đợc gán

 public: gán quyền hệ thống cho tất cả các user

 WITH ADMIN OPTION: cho phép ngời đợc gán quyền có thể gán quyềncho ngời khác

b.Thu hồi quyền hệ thống

[with GRANT OPTION]

b Thu hồi object privilege

CREATE ROLE role [ NOT INDENTIFIED/ INDENTIFIED

{BY password/ EXTERNALLY}]

 Role: là tên role

 NOT INDENTIFIED: không cần xác nhận lại role khi role đợc kích hoạt

 INDENTIFIED: yêu cầu xác nhận role

Trang 29

 BY password: mật khẩu tơng ứng khi xác nhận role

 EXTERNALLY: user cần xác định bởi dịch vụ bên ngoài

6.2 Sửa đổi Role

ALTER ROLE role [ NOT INDENTIFIED/ INDENTIFIED

{BY password/ EXTERNALLY}]

6.3 Gán Role

GRANT ROLE [, role]

TO {user/role/PUBLIC}

[,{user/role/PUBLIC}]

[WITH ADMIN OPTION]

6.4 Điều khiển Role

Một user có thể có nhiều role, vì vầy ta cần chỉ ra role mặc định chouser

ALTER USER user DEFAULT ROLE

{role [,role] / ALL[ EXCEPT role [,role] ]/ NONE}

6.5 Kích hoạt và ngng kích hoạt Role

Khi một role đợc kích hoạt user có thể sử dụng quyền chứa trong role.Ngợc lại sẽ không sử dụng các quyền có trong role nếu role ngng kích hoạt

SET ROLE {role [ INDENTIFIED BY PASSWORD]

[, role [ INDENTIFIED BY PASSWORD]]

/ ALL [ EXCEPT role [ , role ] ]/ NONE }

Trong đó:

 ALL: kích hoạt tất cả các role

 NONE: Ngng kích hoạt các role

6.6 Thu hồi Role

REVOKE role [, role ]

FROM{ user/role/PUBLIC}

[, { user/role/PUBLIC}]

Trong đó:

 Role: tên role thu hồi

 User: tên ngời có role thu hồi

 Public: thu hồi role của các user

6.7 Xoá Role

DROP ROLE role

6.8 Hiển thị thông tin các Role

SELECT role, password_required FROM tên view

Tên view đợc cho trong bảng sau

DBA_ROLES Các role có trong database

DBA_ROLE_PRIVS Các role gán cho user hay role

Trang 30

ROLE_ROLE_PRIVS Các role gán cho role

DBA_SYS_PRIVS Các quyền hệ thống gán cho user hay role

ROLE_SYS_PRIVS Các quyền hệ thống gán cho user

ROLE_TAB_PRIVS Các table privilege gán cho role

SESION_ROLES Các role đang đợc kích hoạt bởi ngời dùng

7 Nạp dữ liệu

Oracle Server cung cấp nhiều công cụ để nhập dữ liệu, trong đó đángchú ý nhất là SQL*loader một tiện ích cho phép bạn có thể chuyển đổi dữliệu theo ý muốn để đa dữ liệu từ nguồn này sang nguồn khác Có thể sửdụng phơng pháp nạp dữ liệu trực tiếp hay sử dụng SQL*loader

 Schema: là tên ngời chủ của bảng

 Table: là tên bảng

 sub_query: câu lệnh dùng để lấy dữ liệu để thực hiện nạp dữ liệu

 LOGGING: cho phép sinh ra các thực thể tơng ứng trong redo log khi nạpdữ liệu

 NO LOGGING: ngợc lại

7.2 Tạo file nguồn cho việc nạp dữ liệu

- Tạo file điều khiển: Việc tạo file điều khiển nhằm: Chỉ ra tên, vị trí

của file dữ liệu ánh xạ các dữ liệu nhập vào các cột của table tơng ứng Đặctả điều kiện cho việc nạp dữ liệu và khuôn dữ liệu cho các cột của table

- Cú pháp tạo một file điều khiển

LOAD DATA

INFILE filename

INTO TABLE table_name

(field_name1 POSITION (start:end) CHAR

field_name2 POSITION (start:end) CHAR)

Trong đó:

 Filename: là tên file nguồn

 Table_name: là tên bảng chứa dữ liệu

 Field_namei: là tên cột thứ i của bảng

 Start:end: độ rộng cột tơng ứng

- Thực hiện quá trình nạp dữ liệu:

>SQLLDR usename/password CONTROL= control_filename

LOG= logfile [keyword=value ]

Trong đó:

 Username/password: tên và mật khẩu ngời sử dụng

Trang 31

 CONTROL: tên contro file

1.1 Định nghĩa bảng

Để tạo bảng và tổ chức bảng, bạn có thể dựa vào tiện ích lập biểu đồcơ sở dữ liệu của Oracle Server và các lệnh giao tác SQL Các công cụ GUIcủa Enterprise Manager không phải lúc nào cũng có sẵn, tuy nhiên giao diệngiữa Transact –SQL và Oracle Server luôn sẵn sàng

a Tạo một bảng

Kích chuột phải vào nút Create Enterprise Manager với cơ sở dữ liệu

đã chọn, chọn Table/Creat và nhập vào tên bảng, cùng các thông số và địnhdạng của bảng, bạn sẽ nhìn thấy hộp thoại Design Table

Cách thứ hai để tạo bảng là dùng lệnh CREATE TABLE trong môi ờng SQL*PLUS:

tr-Cú pháp:

CREATE TABLE [schema.] table

(column datatype [, column datatype]… ) ) [ TABLESPACE tablespace ]

 column datatype: tên cột và kiểu dữ liệu củacột

 tablespace: tên tablespace chứa bảng

 PCTFREE: % không gian trống thuộc block trên mỗi dòng dữ liệu

 PCTUSED: Vùng trống nhỏ nhất đợc sử dụng trên mỗi block

 INITRANS: Số lợng transaction entries cho mỗi block

 MAXTRANS: Số lợng tối đa transaction entries cho mỗi block

 STORAGE: Cách thức vùng trống đợc cấp phát cho mỗi table

 LOGING / NOLOGING: Việc tao table đợc lu vào redo log file có/không

 CACHE / NOCACHE: Dữ liệu trong table có đợc truy xuất qua cache haykhông

Trang 32

b Đặt tên bảng

Tên bảng phải thoả mãn các qui định đặt tên chuẩn Chủ sở hữu bảng

và sở hữu cơ sở dữ liệu tham chiếu đầy đủ đến một bảng bao gồm tên cơ sởdữ liệu, tên ngời sở hữu và tên bảng, nếu bạn đang ở trong một cơ sở dữ liệuthì không cần đa tên cơ sở dữ liệu đó Nếu bạn là chủ sở hữu cơ sở dữ liệu đóthì bạn không cần đa tên ngời sở hữu

c Bảng tạm thời

Nếu bạn đặt tên bảng bắt đầu bằng dấu # thì Oracle Server sẽ tạo ramột bảng tạm thời trong cơ sở dữ liệu tempdb, bảng này chỉ có ý nghĩa trongphiên làm việc của bạn và bị xoá ngay sau khi kết thúc phiên

Nếu tên bảng bắt đầu bằng 2 dấu # thì bảng tạm thời này mang tínhtổng thể, nó vẫn nằm trong cơ sở dữ liệu tempdb nhng những ngời khác đều

có thể nhìn thấy và truy nhập nó Oracle Server sẽ xoá nó sau khi kết thúcphiên

Với những tên bảng phức tạp, bạn có thể đa tên đó trong cặp dấu (“),khi đó bạn không đợc dùng nó làm dấu phân cách câu hỏi Bạn cũng có thểdùng cặp dấu ([,]) để bao tên bảng

d Định nghĩa cột

Tên cột phải tuân theo các giới hạn giống nh với tên bảng Mỗi cộttrong cơ sở dữ liệu có một kiểu dữ liệu giới hạn loại dữ liệu chứa trong đó.Oracle Server có sẵn một số kiểu dữ liệu; ngoài ra ngời dùng có thể tự địnhnghĩa kiểu mới và đa thêm các ràng buộc cho dữ liệu trong cột, tuy nhiên

điều này lại giới hạn loại câu hỏi, do đó nên tránh xu hớng này Vì OracleServer lu trữ dữ liệu trong các trang 8 K, chiều dài tối đa của một hàng là

u ý: không thể chèn trực tiếp giá trị vào cột có thuộc tính định danh

nếu bạn không bỏ thuộc tính này bằng câu lệnh SET IDENTITY_INSERT

<tên bảng> ON Để đợc sử dụng câu lệnh này bạn phải là chủ sở hữu củabảng

1.2 Thay đổi cấu trúc bảng

- Lệnh ALTER TABLE

Bạn có thể dùng lệnh ALTER TABLE để thêm các cột vào bảng, bạncũng có thể thêm các ràng buộc

- Thêm một cột mới:

ALTER TABLE Customer

ADD Adress VARCHAR(50) NULL

Sửa đổi các tính chất của cột, chẳng hạn thay đổi kiểu dữ liệu:

ALTER TABLE Customer

ALTER COLUMN Adress CHAR(20) NULL

- Xoá cột:

ALTER TABLE Customer

Trang 33

DROP COLUMN Adress

Ví dụ: CREATE VIEW CA_Authors

SELECT * FROM Authors

WHERE state = ‘CA’

Có thể dùng lệnh UNION để kết hợp các view lại với nhau thành mộttập, kết quả tạo ra là một view đợc phân vùng Khi cập nhật view đó, OracleServer dựa vào các giá trị để biết đợc thông tin mới hay giá trị sửa đổi thuộcbảng nào

Có thể đa hàm vào view và nhận kết quả của nó bằng cách đa các phần

tử hàm vào khai báo view, ví dụ với hàm AVG:

CREATE VIEW TypeYTDSales (TitleType, AvgYTDSales)

AS SELECT type, AVG(YTD_Sales)

FROM titles

GROUP BY type

Có thể tạo một view mật mã bằng cách thêm WITH ENCRYPTIONvào khai báo view Mục đích của mã hoá là lu trữ định nghĩa view ở dạng mãhoá, không đọc đợc bằng các công cụ của Enterprise Manager Điều này cóích khi bạn vận chuyển cơ sở dữ liệu và định nghĩa view chứa các thông tin

độc quyền

Có thể kiểm tra view trong Enterprise Manager bằng cách kéo xuống

từ nút Views trong cơ sở dữ liệu và chọn Properties Trong hộp thoại này bạncũng có thể cấp quyền cho views Ngoài ra bạn cũng có thể thay đổi viewtrong Transact –SQL bằng lệnh ALTER VIEW:

ALTER VIEW CA_Authors AS

SELECT au_lname, au_fname FROM Authors

WHERE state = ‘CA’

CREATE VIEW CA_Authors AS

SELECT au_lname, au_fname FROM Authors WHERE state = ‘CA’

1.4 Bảng hệ thống và view theo chuẩn ANSI

Theo mô hình quan hệ, tất cả dữ liệu về các bảng của cơ sở dữ liệu đợcchứa trong bảng hệ thống Oracle Server có 2 loại bảng hệ thống: bảng

Trang 34

catalog mô tả và quản lý tất cả các bảng dữ liệu; một số cơ sở dữ liệu khác

nh master và msdb chứa các bảng dữ liệu hoạt động nh là bảng hệ thống trêntoàn bộ máy chủ

Bạn có thể quan sát các bảng hệ thống bằng cách kích chuột phải vàotên máy chủ trong Enterprise Manager và chọn Edit Oracle ServerRegistration

View theo chuẩn ANSI

Dựa trên các bảng hệ thống, một tập view theo chuẩn ANSI đợc địnhnghĩa trong mỗi cơ sở dữ liệu và đợc kế thừa từ cơ sở dữ liệu mẫu; chúngtrích ra một phân thông tin từ các bảng hệ thống Có thể quan sát các viewnày trên cây view của Enterprise Manager, dới nút Oracle Server Views

Mỗi view có INFORMATION_SCHEMA của ngời chủ sở hữu, vàphải tham chiếu ngời sở hữu để định danh view Ví dụ để xem danh sách cácbảng trong một cơ sở dữ liệu, bạn đa câu hỏi truy vấn cho view TABLE:

SELECT * FROM INFORMATION_SCHEMA.TABLES

u điểm của view ANSI là nó trả ra một bảng mà bạn có thể thao tác;nhợc điểm là phải tham chiếu tên ngời sở hữu

1.5 Ràng buộc cột

Ràng buộc là một cách quan trọng để giới hạn các giá trị trong cột

- Chỉ số: Oracle Server sử dụng các chỉ số là một phơng pháp gián tiếp,

tìm nhanh dữ liệu từ bảng mà không cần phải quét trực tiếp cả bảng đó Chỉ

số cũng là công cụ chính để tăng cờng hiệu năng câu hỏi truy vấn Có 2 loạichỉ số: chỉ số bó và không bó

- Chỉ số bó (clustered Indexes): Chỉ số bó sắp xếp lại dữ liệu theo trình

tự phù hợp với cột chỉ số Oracle Server sẽ lu dữ liệu của bảng theo trình tựchỉ ra trong chỉ số bó Để tạo một chỉ số bạn dùng lệnh T –SQL CREATEINDEX

- Chỉ số không bó (nonclustered Indexes): Bạn có thể tạo thêm các chỉ

số không bó, các chỉ số này không ảnh hởng đến trình tự vật lý của dữ liệunhng lại tăng cờng hiệu năng của câu hỏi truy vấn và thờng đợc dùng để tối uhoá câu hỏi

- Xoá chỉ số: Có thể xoá chỉ số bằng câu lệnh DROP INDEX:

DROP INDEX cust_name

Hoặc bằng cách kéo thả trong Enterprise Manager

- Ràng buộc duy nhất: Oracle Server có thể tạo tính duy nhất cho các

giá trị trong một cột bằng cách sử dụng các chỉ số Khi tạo một chỉ số duynhất trên một cột hoặc kết hợp của nhiều cột, Oracle Server sẽ loại bỏ cácphép chèn hay cập nhật bảng đó để không thể tạo ra các giá trị trùng nhau

- Chỉ số duy nhất: Có thể dùng một chỉ số để tạo tính duy nhất, khi đó

bạn thêm một chỉ số với từ khoá UNIQUE:

CREATE UNIQUE INDEX cust_name

ON Customer (cust_name)

Ngày đăng: 22/12/2013, 13:04

HÌNH ẢNH LIÊN QUAN

Hình 1: Ba dịch vụ của một ứng dụng dữ liệu đối với ngời dùng - Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng
Hình 1 Ba dịch vụ của một ứng dụng dữ liệu đối với ngời dùng (Trang 5)
Hình 2: Sự phát triển của DBMS - Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng
Hình 2 Sự phát triển của DBMS (Trang 6)
Hình 3 :Mô hình giao tiếp giữa client và Server - Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng
Hình 3 Mô hình giao tiếp giữa client và Server (Trang 15)
Hình 4 :  Client và Server giao tiếp với nhau thông qua TDS - Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng
Hình 4 Client và Server giao tiếp với nhau thông qua TDS (Trang 16)
Hình 5 : Các thành phần giao tiếp với TDS - Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng
Hình 5 Các thành phần giao tiếp với TDS (Trang 17)
Hình 7:  Mô hình kết nối của Oracle Server 8.0 - Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng
Hình 7 Mô hình kết nối của Oracle Server 8.0 (Trang 18)
Hình 8:  Mô hình kết nối Server   to - Server – - Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng
Hình 8 Mô hình kết nối Server to - Server – (Trang 19)
Hình 9: Giao diện kết nối OLE DB tới các nguồn cơ sở dữ liệu khác nhau - Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng
Hình 9 Giao diện kết nối OLE DB tới các nguồn cơ sở dữ liệu khác nhau (Trang 20)
2. Bảng hớng dẫn đánh phách - Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng
2. Bảng hớng dẫn đánh phách (Trang 62)
3. Bảng ghi điểm - Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng
3. Bảng ghi điểm (Trang 63)
5. Bảng điểm rèn luyện - Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng
5. Bảng điểm rèn luyện (Trang 64)
7. Bảng điểm tổng kết - Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng
7. Bảng điểm tổng kết (Trang 65)
Sơ đồ sau đây thể hiện việc phân cấp các chức năng đó: - Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng
Sơ đồ sau đây thể hiện việc phân cấp các chức năng đó: (Trang 68)
Bảng điểm RL Bảng ghi điểm - Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng
ng điểm RL Bảng ghi điểm (Trang 69)
Bảng ghi điểm Danh sách học bổng - Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng
Bảng ghi điểm Danh sách học bổng (Trang 70)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w