TÌM HIỂU VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE HQTCSL ORACLE CSDL ORACLE - Oracle Database MỤC LỤCDANH MỤC VIỆT TẮT3DANH MỤC HÌNH ẢNH4DANH MỤC BẢNG BIỂU5CHƯƠNG 1. TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE61.Một số khái niệm cơ bản62.Giới thiệu63.Lịch sử phát triển74.Lựa chọn phiên cài đặt85.Cài đặt và cấu hình8Các thành phần cơ bản21CHƯƠNG 2. QUẢN TRỊ VẬN HÀNH VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE271.Tạo và cấu hình cơ sở dữ liệu272.Sao lưu và phục hồi dữ liệu33CHƯƠNG 3. QUẢN TRỊ THÀNH PHẦN VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE351.Bảng và khung nhìn352.Chỉ mục 363.Hàm và thủ tục374.Ràng buộc và Bẩy lỗi38CHƯƠNG 4. QUẢN TRỊ NGƯỜI DÙNG VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE401.Quyền đăng nhập hệ thống402.Quyền và vai trò41TÀI LIỆU THAM KHẢO45 DANH MỤC VIỆT TẮTSTTViết tắtTên đầy đủ1CSDLCơ sở dữ liệu2DBMSDatabase Management System3DCLData control language4DMLData manipulation language5DDLData definition language6DQLData query language DANH MỤC HÌNH ẢNHHình 0.1Cơ chế hoạt động khách chủ7Hình 0.2 Cài đặt hình 19Hình 0.3Cài đặt hình 29Hình 0.4Cài đặt hình 310Hình 0.5Cài đặt hình 410Hình 0.6Cài đặt hình 511Hình 0.7Cài đặt hình 611Hình 0.8Cài đặt hình 712Hình 0.9Cài đặt hình 812Hình 0.10Cài đặt hình 913Hình 0.11Cài đặt hình 1013Hình 0.12Cài đặt hình 1114Hình 0.13Cài đặt hình 1214Hình 0.14Cài đặt hình 1315Hình 0.15Cài đặt hình 1415Hình 0.16Cài đặt hình 1516Hình 0.17Cài đặt hình 1616Hình 0.18Cài đặt hình 1717Hình 0.19Cài đặt hình 1817Hình 0.20Cài đặt hình 1918Hình 0.21Cài đặt hình 2018Hình 0.22Cài đặt hình 2119Hình 0.23Cài đặt hình 2219Hình 0.24Cài đặt hình 2320Hình 0.25Kiến trúc Oracle Server21Hình 0.26SGA22Hình 0.27Kiến trúc Tablespace25Hình 0.28Tạo cơ sở dữ liệu hình 127Hình 0.29Tạo cơ sở dữ liệu hình 228Hình 0.30Tạo cơ sở dữ liệu hình 329Hình 0.31Tạo cơ sở dữ liệu hình 430Hình 0.32Tạo cơ sở dữ liệu hình 531Hình 0.33Mô hình truy cập40 DANH MỤC BẢNG BIỂUBảng 0.1Bảng lịch sử phát triển8Bảng 0.2Bảng thông tin về role43Bảng 0.3Bảng thông tin về các role 244 CHƯƠNG 1.TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE 1.Một số khái niệm cơ bản Cơ sở dữ liệu (Database) là một tập hợp dữ liệu có liên quan với nhau về mặt luận lý được lưu trữ trên các thiết bị nhớ đáp ứng nhu cầu sử dụng thông tin với các mục đính của người sử dụng. Hệ quản trị CSDL (DBMS) là phần mềm hệ thống đước thiết kế giúp tạo môi trường lưu trữ, thao tác và quản lý dữ liệu trong CSDL.Mức thể hiện của CSDL sắp xếp theo mức trừu tượng hóa tăng dần:Mức khung nhìn (physical level): mô tả một phần của CSDL ứng với từng người dùng. Người dùng với hệ thống trao đổi thông qua khung nhìn. Hệ thống duy trì nhiều khung nhìn khác nhau.Mức luận lý (logical level): mô tả dữ liệu gì được lưu trữ trong CSDL và các mối quan hệ giữa chúng. Mức này được sử dụng bởi các DBAMức vật lý (physical level): mô tả dữ liệu thể hiện được lưu trữ thế nào. Các cấu trục của CSDL được mô tả chi tiết.Ngôn ngữ dữ liệu là tập hợp các lệnh được hệ quản trị CSDL định nghĩa để thức hiện các chức năng của nó. Phân loại như sau:Ngôn ngữ định nghĩa dữ liệu (DCL): định nghĩa và xác định các loại dữ liệu như tạo, thay đổi hoặc xóa và các mối quan hệ giữa chúng.Ngôn ngữ thao tác dữ liệu (DML): thực hiện các tác vụ như chèn, cập nhật hoặc xóa các lần xuất hiện dữ liệu.Ngôn ngữ điều khiển dữ liệu (DDL): dùng để bảo mật kiểm soát các truy cập dữ liệu.Ngôn ngữ truy vấn dữ liệu (DQL): tạo các truy vấn tìm kiếm, hiển thị thông tin.2.Giới thiệuOracle là thương hiệu nhà cung cấp công nghệ lớn nhất trên thị trường hiện nay. Đó cũng là từ viết tắt của phần mềm hệ thống quản lý CSDL quan hệ (RDBMS) – Oracle Database được công ty phát triển. Oracle là hệ quản trị CSDL đầu tiên được tích hợp chủ yếu trong nhiều mô hình giúp các doanh nghiệp quản lý dữ liệu trên máy tính một cách dễ dàng, linh hoạt và tiết kiệm chi phí nhất. Phần mềm này mang tính mềm tính mềm dẻo, linh động, thích ứng cao với các quy mô xử lý giao dịch, an toàn hệ thống. Cung cấp các công cụ xây dựng và quản lý cơ sở dữ liệu.•Cơ chế hoạt động Hệ quản trị CSDL Oracle hoạt động theo mô hình khách chủ cho đồng thời có nhiều nhiều người dùng truy xuất sử dụng đến dữ liệu. Hình 0.1Cơ chế hoạt động khách chủ 3.Lịch sử phát triểnNămPhiên bảnTính năng nổi bật1979Oracle v2SQLbased RDBMS thương mại đầu tiên1983Oracle v3Kiểm soát đồng thời, phân phối dữ liệu, khả năng mở rộng1984Oracle v4Multiversion read consistency1985Oracle v5 Hỗ trợ mô hình Clientserver hệ thống cơ sở dữ liệu phân tán1988Oracle v6Khóa Rowlevel, khả năng mở rộng, sao lưu và phục hồi trực tuyến, PL SQL, Oracle Parallel Server1992Oracle 7iThủ tục lưu trữ PL SQL, Triggers, Shared Cursors, Cost Based Optimizer, Transparent Application Failover1997Oracle 8Trình quản lý khôi phục, Phân vùng, Thẻ dữ liệu, Native internet protocols, Java, Cơ sở dữ liệu riêng ảo.2001Oracle 9iOracle Real Application Clusters (RAC), Oracle XML DB, Khai thác dữ liệu, Luồng, Logical Standby2003Oracle 10gR1Cơ sở hạ tầng lưới, Oracle ASM, Cơ sở dữ liệu Flashback, Màn hình chẩn đoán cơ sở dữ liệu tự động2005Oracle 10gR2Kiểm tra ứng dụng thực, Kho cơ sở dữ liệu, Lập chỉ mục trực tuyến, Advanced Compression, Mã hóa dữ liệu minh bạch2007Oracle 11gR1Bảo vệ dữ liệu hoạt động, Secure Files, Exadata2009Oracle 11gR2Data Redaction, Hybrid Columnar Compression, Cluster File System, Golden Gate Replication, Database Appliance2013Oracle 12cR1Multitenant architecture, InMemory Column Store, Native JSON, SQL Pattern Matching, Database Cloud Service2016Oracle 12cR2Native Sharding, Zero Data Loss Recovery Appliance, Exadata Cloud Service, Cloud at Customer2018Oracle 18cAutonomous Database, Data Guard MultiInstance Redo Apply, Polymorphic Table Functions, Active Directory Integration2019Oracle 19cIndexing tự động, Chuyển hướng DML bảo vệ dữ liệu , Bảng kết hợp được phân vùng, Realtime Stats + Stats Only Queries2020Oracle 20cNonCDB architecture will be desupported, Native Blockchain tables và nhiều thuật toán máy tính.Bảng 0.1Bảng lịch sử phát triển•Các phiên bảnPhiên bản EnterprisePhiên bản StandardPhiên bản ExpressPhiên bản Personal•Một số tính năng của hệ quản trị CSDL OracleKhả năng cho phép xử lý dữ liệu rất lớn, có thể đến hàng trăm terabyte với tốc độ xử lý dữ liệu rất nhanh và cao.Khả năng bảo mật rất cao, Oracle đạt độ bảo mật cấp c2 theo chuẩn bảo mật của bộ quốc phòng Mỹ và công nghệ Oracle vốn được hình thành từ yêu cầu đặt hàng của các cơ quan an ninh FBI và CIA.Phần mềm tương thích với nhiều nền tảng hiện nay.Cho phép nhiều người dùng cùng lúc.Cho phép triển khai CSDL phân tán. Bất cứ một hệ thống bổ sung nào được người dùng này truy cập đều được gọi là hệ thống từ xa. Một môi trường phân tán cho phép các ứng dụng truy cập và trao đổi dữ liệu từ các hệ thống cục bộ và từ xa. Các dữ liệu này có thể được truy cập và sửa đổi đồng thời. Đồng thời có thể phát triển ứng dụng trên internet.4.Lựa chọn phiên cài đặtPhiển bản: Oracle 12c R1 (Release 1) (64 bit)5.Cài đặt và cấu hình Oracle cho phép download miễn phí. Bạn có thể vào trang chủ của Oracle để download phần mềm này. Đường dẫn: http:www.oracle.comtechnetworkdatabaseenterpriseeditiondownloadsindex.html Hình 0.2 Cài đặt hình 1 Sau khi download xong bạn sẽ có 2 file zip. Giải nén chúng vào cùng một thư mục. Hình 0.3Cài đặt hình 2 Chạy file Setup.exe Hình 0.4Cài đặt hình 3 Hình 0.5Cài đặt hình 4 Sau đây, chúng ta sẽ cài phần mềm Oracle và tạo Database có tên db12c Hình 0.6Cài đặt hình 5Cài đặt Hình 0.7Cài đặt hình 6 Hình 0.8Cài đặt hình 7 Hình 0.9Cài đặt hình 8 Hình 0.10Cài đặt hình 9 Hình 0.11Cài đặt hình 10 Oracle sẽ được cài đặt vào 1 user của Windows không có quyền Administrator, vì lý do bảo mật. Nếu trong máy tính của bạn chưa có Windows user như vậy bạn có thể chọn tạo mới một Windows user. Hình 0.12Cài đặt hình 11 Hình 0.13Cài đặt hình 12 Hình 0.14Cài đặt hình 13 Bước này, bộ cài đặt hỏi bạn có tạo Plugin hay không, hãy chọn: Create as Container Database và nhập vào tên Plugin Database: pdbdb12c Hình 0.15Cài đặt hình 14 Hình 0.16Cài đặt hình 15 Để có thể lưu trữ được nhiều loại ngôn ngữ (bao gồm cả tiếng Việt), bạn nên chọn: Character Set: Unicode (AL32UTF8) Hình 0.17Cài đặt hình 16 Hình 0.18Cài đặt hình 17 Hình 0.19Cài đặt hình 18 Hình 0.20Cài đặt hình 19 Hình 0.21Cài đặt hình 20 Hình 0.22Cài đặt hình 21 Và chờ đợi cho tới khi việc cài đặt thành công. Hình 0.23Cài đặt hình 22 Bước tiếp theo bộ cài đặt sẽ tạo Database có tên db12c như bước trước chúng ta đã đặt tên. Hình 0.24Cài đặt hình 23 Tới đây việc cài Oracle thành công. Có thể tiến hành mở Orcale và sử dụng Các thành phần cơ bản Hình 0.25Kiến trúc Oracle ServerOracle Server gồm có một Oracle Instance và một Oracle DatabaseOracle Instance là thành phần liên kết giữa người dùng và thông tin trong Oracle Database. Một Oracle Instance chỉ được mở cho duy nhất một Oracle Database cần truy xuất.Oracle Database dùng để lưu trữ và cung cấp thông tin cho người dùng. Việc quản lý dữ liệu trong Oracle Database thông qua cấu trúc lưu trữ logic và vật lý.6.1. Oracle Instance Architecture •Oracle Database Memory Structure – Cấu trúc vùng nhớ Oracle sử dụng vùng nhớ để lưu trữ thông tin trong hệ thống khi đang thực thi. Cấu trúc vùng nhớ của Oracle bao gồm SGA và PGACác thành phần trong System Global Area (SGA) System Global Area (SGA): Là vùng bộ nhớ chia sẻ được sử dụng để lưu trữ dữ liệu và các thông tin điều khiển của Oracle server. Được chỉ định khi một Instance được khởi động, và là thành phần cơ bản của một Oracle Instance. Thông tin lưu trữ trong SGA có thể được sử dụng bởi tất cả các Server Process và Background Process. Hình 0.26SGADatabase Buffer Cache: Lưu trữ những bản copy của khối dữ liệu đã được đọc từ data file. Khi một đoạn SQL được thực thi, thì Server Process sẽ đọc các thông tin từ Database Buffer Cache để lấy các khối dữ liệu cần thiết, điều này giúp cho tốc độ hoạt động của hệ thống sẽ cao hơn vì đọc trên cache sẽ nhanh hơn là đọc trên đĩa cứng. Nếu các khối dữ liệu không có trong Database Buffer Cache thì Server Process mới đọc dữ liệu từ data file.Redo Log Buffer: Là một bản ghi tạm thời, ghi lại tất cả những thay đổi trên các khối dữ liệu với mục đích chính là để phục hồi dữ liệu. Được thực hiện bởi các Background Process.Shared pool: Được dùng để lưu trữ những đoạn SQL vừa được thực thi gần đây nhất và những định nghĩa dữ liệu được dùng gần đây nhất.Large Pool: Cung cấp một vùng nhớ lớn, được cấp phát cho các trường hợp như: sao lưu, phục hồi hệ thống...Java Pool là vùng dùng cho các Procedure viết bằng Java.Các thành phần trong Program Global Area (PGA) Program Global Area (PGA): Là một phần cấu trúc bộ nhớ lưu trữ dành cho 1 User process kết nối tới 1 Instance bao gồm dữ liệu và thông tin điều khiển cho một Server hoặc một Background process. Được chỉ định khi một Server Process được khởi động. PGA được cấp phát cho User Process kết nối đến Oracle Server. PGA bao gồm:Session informationCursor informationSQL execution work area•Oracle Database Process Architecture – Cấu trúc tiến trình Trong hệ thống Oracle Database thì Process có thể được chia làm ba nhóm là:User Process: Bao gồm ứng dụng hay công cụ kết nối tới Oracle Database.Database Process: Bao gồm Server Process và Background Process. Trong đó Server Process được tạo ra khi một Session được thiết lập. Còn Background Process được khởi động mỗi khi Instance được khởi động.DaemonApplication Process: Bao gồm Networking listeners và Grid infrastructure.Về Server Process:Dedicated Server: Một Server Process sẽ phục vụ cho 1 User Process (11).Shares Server: Một Server Process sẽ phục vụ cho nhiều User Process (1n).Về Background Process: Thực hiện các chức năng thay cho lời gọi tiến trình xử lý tương ứng. Nó điều khiển vào ra, cung cấp các cơ chế xử lý song song nâng cao hiệu quả và độ tin cậy.Database Writer Process (DBWn): Ghi các Modified (Dirty) Buffer từ Database Buffer xuống Datafile.Log Writer Process (LGWR): Ghi các Redo Log Buffer xuống một Redo Log File.Checkpoint Process (CKPT): Có thể được coi như là một sự kiện khi thực hiện ghi tất cả các Dirty Buffer trong SGA.System Monitor Process (SMON): Phục hồi lại những thay đổi trong Redo Log, mở Database cho User truy xuất, phục hồi các Transaction chưa được Commit.Process Monitor Process (PMON): “Thu dọn sau khi một Process thất bại (quay lại Transaction, giải phóng Block, khởi động lại Dispathcer...).Recoverer Process (RECO)Job Queue Coordinator (CJQ0)Job Slave Processes (Jnnn)Archiver Processes (ARCn)Queue Monitor Processes (QMNn)6.2.Oracle Database Architecture – Cấu trúc dữ liệu của Oracle Oracle Database là tập hợp các dữ liệu được xem như một đơn vị thành phần (Unit). Database có nhiệm vụ lưu trữ và trả về các thông tin liên quan. Database được xem xét dưới hai góc độ cấu trúc logic và cấu trúc vật lý. Hai cấu trúc dữ liệu này tồn tại tách biệt nhau, việc quản lý dữ liệu theo cấu trúc lưu trữ vật lý không gây ảnh hưởng tới cấu trúc logic. Cấu trúc lưu trữ vật lý là các tập tin. Cấu trúc lưu trữ logic là các không gian bảng (table space). Oracle Database được xác định bởi tên một tên duy nhất.•Cấu trúc vật lý của Database Dữ liệu trong Oracle Database sẽ được tổ chức lưu trữ và quản lý bởi ba loại tập tin sau:Datafile Mỗi một Oracle Database đều có thể có một hay nhiều Datafile. Các Datafile chứa toàn bộ dữ liệu trong Database. Các dữ liệu thuộc cấu trúc logic của Database như Table hay Index đều được lưu trữ vật lý trong các Datafile. Đặc điểm của Datafile:Một Datafile dùng để lưu trữ dữ liệu của duy nhất một Database.Datafile có một số tính chất cho phép tự động mở rộng kích thước để theo kích thước của Database.Một hay nhiều Datafile tạo nên một đơn vị lưu trữ logic của Database gọi là Tablespace.Một Datafile chỉ quan hệ duy nhất một Tablespace. Datafile cũng có trạng thái online và offline. Trạng thái của Datafile thường thay đổi theo Tablespace mà nó liên kết.Redo Log FileMỗi Oracle Database đều có từ 2 Redo Log File trở lên. Các Redo Log File trong database thường được gọi là Redo Log của CSDL đó. Một Redo Log được tạo thành từ nhiều Redo Entries, còn gọi là các Redo Record. Chức năng chính của Redo Log là ghi lại tất cả các thay đổi đối với dữ liệu trong Database. Redo Log File được sử dụng để bảo vệ Database khỏi những hỏng hóc do sự cố. Oracle cho phép sử dụng cùng một lúc nhiều Redo Log gọi là Multiplexed Redo Log để cùng lưu trữ các bản sao của Redo Log trên các ổ đĩa khác nhau. Các thông tin trong Redo Log File chỉ được sử dụng để khôi phục lại Database trong trường hợp hệ thống gặp sự cố và không cho phép viết trực tiếp dữ liệu trong Database lên các Datafile trong Database. Công việc khôi phục dữ liệu từ các Redo Log được gọi là Rolling Forward.Control FileMỗi Oracle Database đều có ít nhất một Control File dùng để chứa các mục thông tin quy định cấu trúc vật lý của Database như:Tên của Database.Tên và nơi lưu trữ các Datafile hay Redo Log File.Time stamp (mốc thời gian) tạo lập Database Mỗi khi nào một Instance của Oracle Database được khởi động, Control File của nó sẽ được sử dụng để xác định Datafile và các Redo Log File đi kèm. Nội dung của Control File sẽ được Oracle tự động cập nhật liên tục khi cấu trúc lưu trữ vật lý của Database thay đổi và chỉ có thể bị thay đổi bởi Oracle. Control File cũng được sử dụng đến khi thực hiện khôi phục lại dữ liệu.•Cấu trúc logic của DatabaseCấu trúc logic của Oracle Database bao gồm các đối tượng Tablespaces, Schema Objects, Data Block, Extent, Và Segment.TablespaceMột Database có thể được phân chia về mặt logic thành các đơn vị gọi là các Tablespace, Tablespace thường bao gồm một nhóm các thành phần có quan hệ logic với nhau. Trong Oracle Database luôn có một Tablespace do Oracle tạo ra trong quá trình tạo Database có tên là System. Đây là vùng nhớ quan trọng của các đối tượng. Mối quan hệ giữa Database, Tablespace, và Datafile:Tablespace chỉ thuộc về một Database duy nhất.Mỗi Database có thể phân chia về mặt logic thành một hay nhiều Tablespace.Mỗi Tablespace có thể được tạo nên, về mặt vật lý, bởi một hoặc nhiều Datafile.Kích thước của một Tablespace bằng tổng kích thước của các Datafile của nó.Kích thước của Database cũng có thể xác định được bằng tổng kích thước của các Tablespace của nó.Schema và Schema Object Schema là tập hợp các đối tượng (objects) có trong Database. Schema Object là các cấu trúc logic cho phép tham chiếu trực tiếp tới dữ liệu trong database. Schema Object bao gồm các cấu trúc như Table, View, Sequence, Stored Procedure, Synonym, Index, Cluster, Và Database Link.Data Block, Extent, and Segment. Oracle điểu khiển không gian lưu trữ trên đĩa cứng theo các cấu trúc logic bao gồm các Data Block, Extent, Và Segment. Hình 0.27Kiến trúc TablespaceOracle Data Block: Là mức phân cấp logic thấp nhất, các dữ liệu của Oracle Database được lưu trữ trong các Data Block. Một Data Block tương ứng với một số lượng nhất định các byte vật lý của Database trong không gian đĩa cứng. Kích thước của một Data Block được chỉ ra cho mỗi Oracle Database ngay khi Database được tạo lập, xác định qua tham số DB_BLOCK_SIZE. Database sử dụng, cấp phát và giải phóng vùng không gian lưu trữ thông qua các Oracle Data Block. Data Block gồm có 3 vùng chính là:Header: Là vùng chứa thông tin chung của Block như địa chỉ của Block và loại Segment chứa Block.Data: Dùng lưu trữ dữ liệu các dòng trong bảng. Các dòng của một bảng dữ liệu có thế nằm trên nhiều Block khác nhau.Free Space: Là vùng nhớ nằm giữa Header và Data, vùng nhớ này giúp kích thước của Header và Data có thể tăng lên khi cần.Extent: Là mức phân chia cao hơn về mặt logic các vùng không gian trong Database. Một Extent bao gồm một số Data Block liên tiếp nhau, cùng được lưu trữ tại một thiết bị lưu giữ. Số lượng Data Block tùy thuộc vào kích thước được chỉ định cho Extent khi tạo đối tượng Table. Extent được sử dụng để lưu trữ các thông tin có cùng kiểu. Segment: Là mức phân chia cao hơn nữa về mặt logic các vùng không gian trong Database. Một Segment là một tập hợp các Extent được cấp phát cho một cấu trúc logic dùng để chứa toàn bộ thông tin cấu trúc lưu trữ logic bên trong Tablespace. Oracle Database sử dụng 4 loại Segment để lưu trữ thông tin:Data SegmentIndex SegmentTemporary SegmentRollback Segment Những Segment này được cấp phát cho những đối tượng ở những thời điểm khác nhau. CHƯƠNG 2.QUẢN TRỊ VẬN HÀNH VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE1.Tạo và cấu hình cơ sở dữ liệuTạo cơ sở dữ liệu với Oracle Configuration Assistant: Chọn tùy chọn Create Database và nhấp vào nút Next. Hình 0.28Tạo cơ sở dữ liệu hình 1 Chọn tùy chọn Typical configuration. Nhập tên container database (cdbrac), tên pluggable database (pdb1) và mật khẩu quản trị viên. Nhấp vào nút Next. Hình 0.29Tạo cơ sở dữ liệu hình 2Chờ cho quá trình kiểm tra điều kiện tiên quyết hoàn tất. Nếu có bất kỳ sự cố nào, hãy khắc phục chúng hoặc chọn hộp kiểm Ignore All và nhấp vào nút Next. Nếu không có vấn đề gì, bạn sẽ chuyển thẳng đến màn hình tóm tắt.Nếu bạn hài lòng với thông tin tóm tắt, hãy nhấp vào nút Finish. Hình 0.30Tạo cơ sở dữ liệu hình 3Chờ trong khi quá trình tạo cơ sở dữ liệu diễn ra. Hình 0.31Tạo cơ sở dữ liệu hình 4Nếu bạn muốn sửa đổi mật khẩu, hãy nhấp vào nút Password Management. Khi hoàn tất, hãy nhấp vào nút Close. Hình 0.32Tạo cơ sở dữ liệu hình 5 Việc tạo CSDL hiện đã hoàn tất.Tạo cơ sở dữ liệu với câu lệnhKhởi động Instance ở chế độ NOMOUNT và chỉ đến file tham số sử dụng trong chương trình.Dùng câu lệnh CREATE DATABASE tạo database.Cú pháp tạo bảng:Với:database_name: tên của cơ sở dữ liệu cần tạo.CONTROLFILE REUSE: tên file tham số đã tồn tại được tái sử dụng.LOGFILE GROUP: tên của log file được sử dụng.MAXLOGFILES: số lượng tối đa các log file group cho cơ sở dữ liệu.MAXLOGMEMBERS: số lượng tối đa các log file member đối với một log file group.MAXLOGHISTORY: số lượng tối đa các redo log trong một group.DATAFILE filespec: tên file dữ liệu được sử dụng.AUTOEXTEND: cho phép hoặc không cho phép mở rộng tự động các file dữ liệu.MAXDATAFILES: số lượng tỗi đa các datafiles trong database.MAXINSTANCES: số lượng lớn nhất các instance có thể đồng .thời mount và open database.ARCHIVELOG: xác định ràng redo log cần để ở chế độ archive trước khi được dùng lại.NOARCHIVELOG: xác định ràng redo log cần được dùng lại mà không cần đặt chế độ archive.CHARACTER SET, NATIONAL CHARACTER SET: chuẩn ký tự mà CSDL sử dụng để lưu trữ các dữ liệu.Cú pháp cấu hình cơ sơ dữ liệuMOUNT: gắn database với instance. Lúc này ta chỉ có thể thực hiện các thao tác quản trị trên database mà chưa thể sử dụng database được.OPEN READ WRITE: mở database, sẵn sàng cho việc sử dụng database, cả đọc lẫn ghi.OPEN READ ONLY: mở database nhưng chỉ cho đọc database như sử dụng các câu lệnh truy vấn chẳng hạn. Các thao tác ghi không thể thực hiện được. Tuỳ chọn này được sử dụng khi ta cần sao chép các redo log files của database.OPEN: tương tự OPEN READ ONLY, đây là biểu diễn mặc định của OPEN READ WRITE. 2.Sao lưu và phục hồi dữ liệuSao lưu dữ liệu Từ cấu trúc lưu trữ của CSDL Oracle ta có 2 phần Backup tương ứng là Logical backup và Physical Backup. Ngoài RMAN là một tính năng sao lưu dữ liệu có nhiều ưu điểm nổi bật hơn. RMAN là một công cụ cung cấp bởi Oracle để thực hiện sao lưu và phục hồi. Sao lưu với RMAN được thực hiện bằng cách sử dụng các câu lệnh BACKUP. Lệnh sao lưu dữ liệu đầy đủ:RMAN> BACKUP DATABASE; Lệnh sao lưu tất cả dữ liệu nhật kí (archived redo log)RMAN> BACKUP ARCHIVELOG ALL; Lệnh sao lưu CSDL và tất cả dữ liệu nhật kí (archived redo log)RMAN> BACKUP DATABASE PLUS ARCHIVELOG;Phục hồi dữ liệu Lệnh khôi phục toàn bộ dữ liệuRMAN> STARTUP FORCE MOUNT; RESTORE DATABASE; RECOVER DATABASE; ALTER DATABASE OPEN; CHƯƠNG 3.QUẢN TRỊ THÀNH PHẦN VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE 1.Bảng và khung nhìnBảng (TABLE) OracleBảng biểu diễn quan hệ và các bộ dữ liệu của nó. Bảng gồm các thành phầnThuộc tínhMiền giá trịRàng buộc toàn vẹnCác thao tác liên quan tới cấu trúc của bảngCREATEALTERDROP Các thao tác liên quan tới dữ liệu trong bảngINSERTUPDATEDELETESELECTCú pháp tạo bảngVới table_name: là tên của bảng và bảng phải là duy nhât, không được trùng tên.column1, column2, ... column n: Là các thuộc tính của table, mỗi thuộc tính sẽ có các thông tin bổ sung khác như kiểu dữ liệu, giá trị dữ liệu, giá trị mặc định ... và có thể gán NULL hoặc NOT NULL.primary_key_name: tên khóa chính gắn liền với tên bảng.primary_key: thuộc tính là khóa chính trong bảng.Khung nhìn (VIEW) Oracle VIEW là một bảng ảo trong cơ sở dữ liệu có nội dung được định nghĩa thông qua một câu lệnh nào đó. Đặc điểm của VIEW là dữ liệu của nó có thể lấy từ nhiều bảng khác nhau, bởi vì nó được tạo ra từ câu lệnh SELECT. Cú pháp tạo khung nhìnVớiview_name là tên view mà bạn muốn tạocolumns: trường dữ liệu truy vấn đến tương ứngtables: bảng dữ liệuconditions: điều kiện2.Chỉ mục Index INDEX là một cấu trúc dữ liệu làm tăng thời gian và hiệu suất tìm kiếm dữ liệu dựa trên thuộc tính cho trước. Oracle cung cấp các loại INDEX với các ưu điểm khác nhau ứng với từng tình huống cụ thể. Các loại INDEX của phần mềm này như: Btree indexes, Bitmap indexes,I ndexorganized tables, Hash Clusters, Index Cluster, Nested Table. Lưu ý khi sử dụng chỉ mụcCác chỉ mục không nên sử dụng trong các bảng nhỏ.Bảng hoặc các thuộc thường xuyên bị sửa đổi dữ liệu.Không bên sử dụng trên các thuộc tính mà chứa số lượng lượng giá trị NULL.Cú pháp tạo chỉ mụcCú pháp đổi tên chỉ mục Với:UNIQUE: Chỉ ra răng sự kết hợp các giá trị trong các thuộc tính được lập ra là duy nhất.index_name: tên chỉ mục.new_index_name: tên mới của chỉ mục.table_name: tên bảng tạo chỉ mụccolumn1, column2, ... column_n: Các thuộc tính sử dụng trong chỉ mục.3.Hàm và thủ tụcThủ tục (PROCEDURE) Oracle Thủ tục (PROCEDURE), nó dùng để gom một nhóm lệnh xử lý một mục đích cụ thẻ nào đó, sau đó khai bao tham số truyền vào để sau này mỗi khi sử dụng thì ta chỉ cần gọi tên và truyền tham số để không phải lặp lai các nhóm lệnh. Lúc này, hủ tục lúc này được gọi là STORE PROCEDURE. Thủ tục không trả về giá trị trực tiếp như hàm. Cung cấp một phương pháp hữu ích cho việc thực thi lặp lại cùng một nhiệm vụ:Giúp tái sử dụng codeSử dụng lời gọi mỗi khi thực thiCú pháp tạo thủ tụcVới procedure_name là tên của thủ tục. OR REPLACE: Khai báo tham số này thì nó sẽ xóa thủ tục có tên trùng với tên của procedure đang chạyparameter1, parameter2: là các tham số truyền vào thủ tục. có dạng:Tên tham số Kiểu tham số kiểu dữ liệudeclaration_section: phần khai báo biến.executable_section: phần lệnh PLSQL để thục hiện thủ tục.EXCEPTION: trường hợp ngoại lệ với thủ tục phía trên.Mỗi tham số truyền vào được xác định bởi ba loại như sau:IN: là kiểu mặc định, tham số này sẽ là dữ liệu đầu vàoOUT: tham số này sẽ là dữ liệu đầu ra, sử dụng đề lấy kết quả trả về từ thủ tụcIN OUT: tham số vừa là đầu vào vừa là đầu ra, và thường thì giá trị tại đầu ra sẽ bị thay đổi.Hai cách truyền giá trị cho tham số là truyền theo tên và truyền theo vị trí.Cú pháp gọi thủ tụcHàm (FUNCTION) Oracle Tương tự như thủ tục, hàm (FUNCTION) cũng là nhóm các lệnh thực hiện chức năng nào đó. Khác với thủ tục, các hàm sẽ trả về một giá trị ngay tại lời gọi của nó. Cú pháp tạo hàmVới các thông số như thủ tục trong đó có:function_name: tên hàm.datatype: Kiểu dữ liệu của tham số.Gọi hàm trong OracleKhi gọi hàm phải khai báo một biến trả vềGọi hàm – cú pháp gọi hàm (với Variable: biến)4.Ràng buộc và Bẩy lỗi TRIGGER là một loại stored procedure đặc biệt ở trạng thái sẵn sàng, được kích hoạt bởi câu lệnh thay đổi dữ liệu trên bảng hoặc khung nhìn.Các thành phần của TRIGGERTên triggerBảng (khung nhìn) liên kết với triggerThời điểm kích hoạt (FOR AFTER INSTEAD OF)Hành động kích hoạt (INSERT UPDATE DELETE)Các thao tác được thực hiện sau khi kích hoạtLưu ý:Bạn không thể tạo Before Trigger cho ViewBạn không thể cập nhật dữ liệu cũ, chỉ có thể cập nhật dữ liệu mới.Cú pháp tạo TRIGGERVới các thành phần tương tự như cú pháp trênPhần tắt bật TRIGGERDISABLE | ENABLE: ở phần này ta chọn DISABLE để tắt và ENABLE để bật. Chỉ chọn 1 trong 2 thành phần trên.Ở một TABLETắt tất cả TRIGGER trong Table CHƯƠNG 4.QUẢN TRỊ NGƯỜI DÙNG VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE1.Quyền đăng nhập hệ thốngMô hình truy cập Hình 0.33Mô hình truy cậpCơ chế bảo mậtXác thức (Authentication)Điều kiển truy cập (Access control)Điều kiển toàn vẹn (Integrity controls)Kiểm toán (Auditing)Mã hóa (Encryption)Cơ chế bảo mật thông qua các:Quyền (Permission) quy định các hành động người dùng có thể thực hiện trên CSDL hoặc các đối tượng CSDL cụ thể.Vai trò (Role) các quyền được gán cho người dùng. Người dùng được gán các quyền và vai trò nhất định để truy, sử dụng CSDL Oracle cung cấp nhiều tính năng bảo mật nổi trội như: Giải pháp bảo mật Oracle Defense in Dept, an toàn dựa vào nhãn (Oracle Label Security OLS), CSDL riêng ảo (Virtual Private Database VPD), mã hóa dữ liệu trong suốt (Transparent Data Encryption TDE), các cơ chế xác thực mạnh, các cơ chế sao lưudự phòng an toàn,.…Cơ chế xác thực Oracle có các cơ chế xác thực người dùng như sau:Xác thức cơ sở dữ liệu: cơ sỡ dữ liệu thực nhiện nhận dạng và xác thực người dùng.Xác thức bên ngoài Oracle: hệ điều hành, dịch vụ mạng thức hiện xác thực.Xác thực và ủy quyền toàn bộ: người dùng được xác thực toàn bộ bằng SSI.Xác thức và ủy quyền ủy nhiệm: Máy chủ tầng trung gian thực hiện xác thực.Ngoài ra khi tạo người dùng (USER) ta còn có Xác thực và ủy quyền người dùng.2.Quyền và vai tròTạo và gán quyền, vai trò cho người dùngCú pháp Kết nối với tư cách người dùng Hệ thốngCú pháp Tạo truy vấn người dùngCú pháp Cung cấp các vai tròCú pháp Cung cấp đặc quyền ưu tiênCú pháp Cung cấp quyền truy cập vào các bảng. Cú pháp thu hồi quyền và vai trò (sử dụng REVOKE) Vớirole_name: tên của các chức danh cần thu hồi.user: tên user bị thu hồi chức danh.role: tên của các chức danh bị thu hồi chức danh.PUBLIC: thu hồi các quyền hay chức danh từ tất cả các người dùng.Quyền Mặc định thì hệ thống có các Database Administrator (DBA) như:SYS: Có đầy đủ các quyền cũng như quyền cấp lệnh cho User khác (ADMIN OPTION). Có thể startup, shutdown và maintenance Database. Sở hữu Data Dictionary và Automatic Workload Repository (AWR).SYSTEM: Có các quyền DBA, MGMT_USER và roles AQ_ADMINISTRATOR_ROLE.DBSNMP: Có role OEM_MONITOR.SYSMAN: Có các quyền MGMT_USER, RESOURCE và roles SELECT_CATALOG_ROLE. Trên Oracle Database, chúng ta có thể thực hiện phân quyền hạn cho một User. Các quyền hạn này được chia làm 2 loại:System privileges: Nhóm quyền này cho phép User thực hiện các thay đổi trên Database Operations. Ví dụ như các quyền tạo một tablespace là một quyền thuộc nhóm System privilege. Có hơn 170 system privileges khác nhau. Trong đó nhiều system privileges bao gồm từ ANY (Có thể thao tác trên nhiều Object của các User khác nhau).Truy vấn trên bất cứ table nào GRANT SELECT ANY TABLE TO Thêm mới trên bất cứ table nàoGRANT INSERT ANY TABLE TO Cập nhật trên bất cứ table nàoGRANT UPDATE ANY TABLE TO Xóa trên bất cứ table nào GRANT DELETE ANY TABLE TO Object privilesges: Nhóm quyền cho phép người dùng thực thi các thay đổi trên Objects như: table, view, sequence, procedure,function,…Nếu chúng ta không thực hiện phân quyền thì User chỉ có thể thao tác trên các Object mà User đó sỡ hữu.Vai tròOracle cung cấp công cụ cho phép quản lý một cách dễ dàng các quyền thông qua việc sử dụng vai trò (ROLE). Vai trò là một nhóm các quyền được đặt tên có liên quan đến nhau và được gán cho một user hay một vai trò khác. Vai trò được đưa ra nhằm làm dễ dàng quản lý các quyền trong hệ thống.Tạo và sửa chữa các ROLECú pháp tạo ROLE Với:role_name: tên của chức danhNOT IDENTIFIED: chỉ định không cần kiểm tra chức danh khi enable chức danhBY password: mật khẩu người dùng cần cung cấp khi enable chức danhEXTERNALLY: chỉ định user phải được xác lập bởi dịch vụ bên ngoài (như hệ điều hành hay dịch vụ bên thứ ba) trước khi enable chức danh.Lưu ý: Câu lệnh CREATE ROLE IDENTIFIED GLOBALLY chỉ định rằng việc kiểm tra xác lập chức danh thông qua Oracle Security Server. Cú pháp thu hồi ROLE Với:role_name: tên của các chức danh cần thu hồi.user: tên user bị thu hồi chức danh.Role: tên của các chức danh bị thu hồi chức danh.PUBLIC: thu hồi các quyền hay chức danh từ tất cả các user.Bảng thông tin về roleTên roleDiễn giảiCONNECTChức danh cung cấp sẵn để tương thích với các phiên bản trước đóRESOURCEDBATất cả các quyền hệ thống, có tuỳ chọn: WITH ADMIN OPTIONEXP_FULL_DATABASEQuyền export dữ liệu của databaseIMP_FULL_DATABASEQuyền import dữ liệu vào databaseDELETE_CATALOG_ROLEQuyền xoá dữ liệuEXECUTE_CATALOG_ROLEQuyền thực hiện một thủ tụcSELECT_CATALOG_ROLEQuyền lấy dữ liệuBảng 0.2Bảng thông tin về role Thông tin về các role được lấy trong data dictionary. Có rất nhiều TABLE và VIEW chứa thông tin về các quyền được gán cho user.Tên viewDiễn giảiDBA_ROLESTất cả các chức danh trong databaseDBA_ROLE_PRIVSCác chức danh đã được gán quyền cho USER hay chức danh khácROLE_PRIVSCác chức danh đã được gán quyền cho chức danh khácDBA_SYS_PRIVSQuyền hệ thống gán cho USER hay chức danhROLE_SYS_PRIVSQuyền hệ thống gán cho chức danhROLE_TAB_PRIVSQuyền trên TABLE được gán cho chức danhSESSION_ROLESCác chức danh được phép của user hiện thờiBảng 0.3Bảng thông tin về các role 2 TÀI LIỆU THAM KHẢO1.Tài liệu lý thuyếtSlide bài giảng – môn Hệ quản trị cơ sở dữ liệuTác giả: ThS Trịnh Hoàng Nam2.Tài liệu trực tuyếnLịch sử các phiên bản của OracleTác giả: Trần Quốc Huyhttp:tranquochuy.orgcacphienbanoracleCài đặt cơ sở dữ liệu Oracle 12c trên WindowsNguồn: Openplanninghttps:openplanning.net10347caidatcosodulieuoracle12ctrenwindowsKiến thức cơ bản OracleTrích: Giáo trình Oracle – Trung tâm Tin học DH KHTNhttps:csc.edu.vnlaptrinhvacsdltintuckienthuclaptrinhhocoraclekienthuccobanchonguoimoibatdau802Câu lệnh Oracle căn bảnNguồn: Feetutshttps:freetuts.nethocoracleoraclecanbanTạo cơ sở dữ liệu, Sao lưu phục hồi, Quản lý Role, Quản lý Quyền trong Oracle DatabaseTác giả: Trần Văn Bìnhhttps:www.tranvanbinh.vn202103taocosodulieuoracledatabase12c.htmlhttps:www.tranvanbinh.vn202006hocoracledbtuzbai20quanlychuc.htmlhttps:www.tranvanbinh.vn202011quanlyquyentrongoracledatabase.html
TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE
Một số khái niệm cơ bản
Cơ sở dữ liệu (Database) là tập hợp các dữ liệu liên quan được lưu trữ trên thiết bị nhớ, nhằm phục vụ nhu cầu sử dụng thông tin của người dùng.
Hệ quản trị CSDL (DBMS) là phần mềm hệ thống đước thiết kế giúp tạo môi trường lưu trữ, thao tác và quản lý dữ liệu trong CSDL
Mức thể hiện của CSDL sắp xếp theo mức trừu tượng hóa tăng dần:
Mức khung nhìn (physical level) trong cơ sở dữ liệu (CSDL) mô tả các phần dữ liệu tương ứng với từng người dùng Người dùng tương tác với hệ thống thông qua các khung nhìn, và hệ thống duy trì nhiều khung nhìn khác nhau để phục vụ nhu cầu của từng người dùng.
Mức luận lý trong cơ sở dữ liệu (CSDL) mô tả các loại dữ liệu được lưu trữ và các mối quan hệ giữa chúng Đây là cấp độ quan trọng mà các quản trị viên cơ sở dữ liệu (DBA) sử dụng để quản lý và tổ chức thông tin hiệu quả.
Mức vật lý (physical level): mô tả dữ liệu thể hiện được lưu trữ thế nào Các cấu trục của CSDL được mô tả chi tiết
Ngôn ngữ dữ liệu là tập hợp các lệnh được hệ quản trị CSDL định nghĩa để thức hiện các chức năng của nó Phân loại như sau:
Ngôn ngữ định nghĩa dữ liệu (DCL): định nghĩa và xác định các loại dữ liệu như tạo, thay đổi hoặc xóa và các mối quan hệ giữa chúng
Ngôn ngữ thao tác dữ liệu (DML): thực hiện các tác vụ như chèn, cập nhật hoặc xóa các lần xuất hiện dữ liệu
Ngôn ngữ điều khiển dữ liệu (DDL): dùng để bảo mật kiểm soát các truy cập dữ liệu
Ngôn ngữ truy vấn dữ liệu (DQL): tạo các truy vấn tìm kiếm, hiển thị thông tin.
Giới thiệu
Oracle là nhà cung cấp công nghệ hàng đầu trên thị trường hiện nay, nổi bật với phần mềm quản lý cơ sở dữ liệu quan hệ (RDBMS) mang tên Oracle Database, được phát triển bởi công ty.
Oracle là hệ quản trị cơ sở dữ liệu tiên phong, tích hợp trong nhiều mô hình, giúp doanh nghiệp quản lý dữ liệu hiệu quả, linh hoạt và tiết kiệm chi phí.
Phần mềm này có tính linh hoạt cao, dễ dàng thích ứng với quy mô xử lý giao dịch và đảm bảo an toàn cho hệ thống Nó cung cấp các công cụ hiệu quả để xây dựng và quản lý cơ sở dữ liệu.
Hệ quản trị CSDL Oracle hoạt động theo mô hình khách chủ cho đồng thời có nhiều nhiều người dùng truy xuất sử dụng đến dữ liệu
Hình 0.1Cơ chế hoạt động khách chủ
Lịch sử phát triển
Năm Phiên bản Tính năng nổi bật
1979 Oracle v2 SQL-based RDBMS thương mại đầu tiên
1983 Oracle v3 Kiểm soát đồng thời, phân phối dữ liệu, khả năng mở rộng
1985 Oracle v5 Hỗ trợ mô hình Client/server & hệ thống cơ sở dữ liệu phân tán
1988 Oracle v6 Khóa Row-level, khả năng mở rộng, sao lưu và phục hồi trực tuyến, PL / SQL,
1992 Oracle 7i Thủ tục lưu trữ PL / SQL, Triggers, Shared Cursors, Cost Based Optimizer,
1997 Oracle 8 Trình quản lý khôi phục, Phân vùng, Thẻ dữ liệu, Native internet protocols, Java,
Cơ sở dữ liệu riêng ảo
2001 Oracle 9i Oracle Real Application Clusters (RAC), Oracle XML DB, Khai thác dữ liệu,
2003 Oracle 10gR1 Cơ sở hạ tầng lưới, Oracle ASM, Cơ sở dữ liệu Flashback, Màn hình chẩn đoán cơ sở dữ liệu tự động
2005 Oracle 10gR2 Kiểm tra ứng dụng thực, Kho cơ sở dữ liệu, Lập chỉ mục trực tuyến, Advanced
Compression, Mã hóa dữ liệu minh bạch
2007 Oracle 11gR1 Bảo vệ dữ liệu hoạt động, Secure Files, Exadata
2009 Oracle 11gR2 Data Redaction, Hybrid Columnar Compression, Cluster File System, Golden Gate
2013 Oracle 12cR1 Multitenant architecture, In-Memory Column Store, Native JSON, SQL Pattern
2016 Oracle 12cR2 Native Sharding, Zero Data Loss Recovery Appliance, Exadata Cloud Service,
2018 Oracle 18c Autonomous Database, Data Guard Multi-Instance Redo Apply, Polymorphic
Table Functions, Active Directory Integration
2019 Oracle 19c Indexing tự động, Chuyển hướng DML bảo vệ dữ liệu , Bảng kết hợp được phân vùng, Real-time Stats + Stats Only Queries
2020 Oracle 20c Non-CDB architecture will be desupported, Native Blockchain tables và nhiều thuật toán máy tính
Bảng 0.1Bảng lịch sử phát triển
Một số tính năng của hệ quản trị CSDL Oracle
Khả năng cho phép xử lý dữ liệu rất lớn, có thể đến hàng trăm terabyte với tốc độ xử lý dữ liệu rất nhanh và cao
Oracle sở hữu khả năng bảo mật vượt trội, đạt tiêu chuẩn bảo mật cấp C2 theo quy định của Bộ Quốc phòng Mỹ Công nghệ của Oracle được phát triển dựa trên những yêu cầu từ các cơ quan an ninh hàng đầu như FBI và CIA.
Phần mềm tương thích với nhiều nền tảng hiện nay
Cho phép nhiều người dùng cùng lúc
CSDL phân tán cho phép triển khai hệ thống từ xa, trong đó người dùng có thể truy cập các hệ thống bổ sung Môi trường này hỗ trợ các ứng dụng truy cập và trao đổi dữ liệu từ cả hệ thống cục bộ lẫn từ xa, với khả năng truy cập và sửa đổi dữ liệu đồng thời Ngoài ra, việc phát triển ứng dụng trên internet cũng được hỗ trợ trong môi trường phân tán này.
Lựa chọn phiên cài đặt
Phiển bản: Oracle 12c R1 (Release 1) (64 bit)
Cài đặt và cấu hình
10 download phần mềm này Đường dẫn: http://www.oracle.com/technetwork/database/enterprise- edition/downloads/index.html
Sau khi download xong bạn sẽ có 2 file zip Giải nén chúng vào cùng một thư mục
Sau đây, chúng ta sẽ cài phần mềm Oracle và tạo Database có tên db12c
Oracle sẽ được cài đặt cho một người dùng Windows không có quyền Administrator nhằm đảm bảo an toàn bảo mật Nếu máy tính của bạn chưa có người dùng Windows như vậy, bạn có thể tạo một tài khoản người dùng mới.
Bước này, bộ cài đặt hỏi bạn có tạo Plugin hay không, hãy chọn: Create as Container Database và nhập vào tên Plugin Database: pdbdb12c
Hình 0.16Cài đặt hình 15 Để có thể lưu trữ được nhiều loại ngôn ngữ (bao gồm cả tiếng Việt), bạn nên chọn: Character Set: Unicode (AL32UTF8)
Và chờ đợi cho tới khi việc cài đặt thành công
Bước tiếp theo bộ cài đặt sẽ tạo Database có tên db12c như bước trước chúng ta đã đặt tên
Tới đây việc cài Oracle thành công Có thể tiến hành mở Orcale và sử dụng
Hình 0.25Kiến trúc Oracle Server
Oracle Server gồm có một Oracle Instance và một Oracle Database
Oracle Instance là cầu nối giữa người dùng và dữ liệu trong Oracle Database, với mỗi Oracle Instance chỉ có thể kết nối với một Oracle Database duy nhất để truy xuất thông tin.
Oracle Database là hệ thống lưu trữ và cung cấp thông tin hiệu quả cho người dùng Quản lý dữ liệu trong Oracle Database được thực hiện thông qua cấu trúc lưu trữ cả về mặt logic lẫn vật lý.
Oracle Database Memory Structure – Cấu trúc vùng nhớ
Oracle sử dụng vùng nhớ để lưu trữ thông tin trong hệ thống khi đang thực thi Cấu trúc vùng nhớ của Oracle bao gồm SGA và PGA
Các thành phần trong System Global Area (SGA)
System Global Area (SGA) là vùng bộ nhớ chia sẻ của Oracle server, dùng để lưu trữ dữ liệu và thông tin điều khiển SGA được chỉ định khi một Instance được khởi động và là thành phần thiết yếu của một Oracle Instance.
Thông tin lưu trữ trong SGA có thể được sử dụng bởi tất cả các Server Process và Background Process
Database Buffer Cache là nơi lưu trữ các bản sao của khối dữ liệu đã được đọc từ file dữ liệu Khi một câu lệnh SQL được thực thi, Server Process sẽ truy xuất thông tin từ Database Buffer Cache để lấy các khối dữ liệu cần thiết, giúp tăng tốc độ hoạt động của hệ thống, vì việc đọc từ cache nhanh hơn so với việc đọc từ đĩa cứng Nếu khối dữ liệu không có trong Database Buffer Cache, Server Process sẽ tiến hành đọc dữ liệu từ file dữ liệu.
Redo Log Buffer là một bản ghi tạm thời quan trọng, ghi lại tất cả các thay đổi trên các khối dữ liệu nhằm phục hồi dữ liệu hiệu quả Quá trình này được thực hiện bởi các Background Process.
Shared pool: Được dùng để lưu trữ những đoạn SQL vừa được thực thi gần đây nhất và những định nghĩa dữ liệu được dùng gần đây nhất
Large Pool: Cung cấp một vùng nhớ lớn, được cấp phát cho các trường hợp như: sao lưu, phục hồi hệ thống
Java Pool là vùng dùng cho các Procedure viết bằng Java
Các thành phần trong Program Global Area (PGA)
The Program Global Area (PGA) is a memory structure allocated for a single user process connected to an Oracle instance, containing essential data and control information for a server or background process It is assigned when a server process is initiated and is specifically allocated to user processes connecting to the Oracle Server.
Oracle Database Process Architecture – Cấu trúc tiến trình
Trong hệ thống Oracle Database thì Process có thể được chia làm ba nhóm là:
User Process: Bao gồm ứng dụng hay công cụ kết nối tới Oracle Database
The database process consists of two main components: Server Process and Background Process The Server Process is initiated when a session is established, while the Background Process is activated each time an instance is started.
Dedicated Server: Một Server Process sẽ phục vụ cho 1 User Process (1-1)
Shares Server: Một Server Process sẽ phục vụ cho nhiều User Process (1-n)
Các chức năng này thay thế cho lời gọi tiến trình xử lý tương ứng, điều khiển vào ra và cung cấp các cơ chế xử lý song song, nhằm nâng cao hiệu quả và độ tin cậy.
Database Writer Process (DBWn): Ghi các Modified (Dirty) Buffer từ Database Buffer xuống Datafile
Log Writer Process (LGWR): Ghi các Redo Log Buffer xuống một Redo Log File
Checkpoint Process (CKPT): Có thể được coi như là một sự kiện khi thực hiện ghi tất cả các Dirty Buffer trong SGA
System Monitor Process (SMON): Phục hồi lại những thay đổi trong Redo Log, mở Database cho User truy xuất, phục hồi các Transaction chưa được Commit
Process Monitor Process (PMON): “Thu dọn" sau khi một Process thất bại (quay lại Transaction, giải phóng Block, khởi động lại Dispathcer )
6.2 Oracle Database Architecture – Cấu trúc dữ liệu của Oracle
Oracle Database là một hệ thống quản lý dữ liệu, nơi các dữ liệu được tổ chức thành các đơn vị thành phần Nó có chức năng lưu trữ và cung cấp thông tin liên quan một cách hiệu quả.
Cơ sở dữ liệu được phân tích từ hai khía cạnh: cấu trúc logic và cấu trúc vật lý Hai loại cấu trúc dữ liệu này hoạt động độc lập, do đó, việc quản lý dữ liệu theo cấu trúc lưu trữ vật lý không làm ảnh hưởng đến cấu trúc logic của cơ sở dữ liệu.
Cấu trúc lưu trữ vật lý là các tập tin Cấu trúc lưu trữ logic là các không gian bảng (table space)
Oracle Database được xác định bởi tên một tên duy nhất
Cấu trúc vật lý của Database
Dữ liệu trong Oracle Database sẽ được tổ chức lưu trữ và quản lý bởi ba loại tập tin sau:
Mỗi Oracle Database có thể chứa một hoặc nhiều Datafile, nơi lưu trữ toàn bộ dữ liệu của Database Các cấu trúc logic như Table và Index được lưu trữ vật lý trong các Datafile Datafile có những đặc điểm quan trọng trong việc quản lý và tổ chức dữ liệu.
Một Datafile dùng để lưu trữ dữ liệu của duy nhất một Database
Datafile có một số tính chất cho phép tự động mở rộng kích thước để theo kích thước của Database
Một hay nhiều Datafile tạo nên một đơn vị lưu trữ logic của Database gọi là Tablespace
Một Datafile chỉ quan hệ duy nhất một Tablespace
Datafile cũng có trạng thái online và offline Trạng thái của Datafile thường thay đổi theo Tablespace mà nó liên kết
Each Oracle Database consists of at least two Redo Log Files, commonly referred to as the Redo Logs of that database A Redo Log is composed of multiple Redo Entries, also known as Redo Records.
Chức năng chính của Redo Log là ghi lại mọi thay đổi đối với dữ liệu trong cơ sở dữ liệu, giúp bảo vệ nó khỏi hỏng hóc do sự cố Redo Log File được sử dụng để khôi phục cơ sở dữ liệu khi hệ thống gặp sự cố Oracle hỗ trợ Multiplexed Redo Log, cho phép lưu trữ nhiều bản sao của Redo Log trên các ổ đĩa khác nhau Thông tin trong Redo Log File chỉ được sử dụng cho việc khôi phục, không cho phép ghi trực tiếp lên các Datafile trong cơ sở dữ liệu.
Công việc khôi phục dữ liệu từ các Redo Log được gọi là Rolling Forward
Mỗi Oracle Database đều có ít nhất một Control File dùng để chứa các mục thông tin quy định cấu trúc vật lý của Database như:
Tên và nơi lưu trữ các Datafile hay Redo Log File
Time stamp (mốc thời gian) tạo lập Database
Each time an Oracle Database instance is started, its Control File is utilized to identify the associated Datafiles and Redo Log Files.
QUẢN TRỊ VẬN HÀNH VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
Sao lưu và phục hồi dữ liệu
Cấu trúc lưu trữ của CSDL Oracle bao gồm hai loại sao lưu chính: Logical backup và Physical backup RMAN, một công cụ mạnh mẽ do Oracle cung cấp, nổi bật với nhiều ưu điểm trong việc sao lưu và phục hồi dữ liệu Quá trình sao lưu với RMAN được thực hiện thông qua các câu lệnh BACKUP.
Lệnh sao lưu dữ liệu đầy đủ:
Lệnh sao lưu tất cả dữ liệu nhật kí (archived redo log)
Lệnh sao lưu CSDL và tất cả dữ liệu nhật kí (archived redo log)
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
ALTER database { MOUNT | OPEN | OPEN READ ONLY | OPEN READ WRITTE}
Lệnh khôi phục toàn bộ dữ liệu
QUẢN TRỊ THÀNH PHẦN VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE
Bảng và khung nhìn
Bảng biểu diễn quan hệ và các bộ dữ liệu của nó Bảng gồm các thành phần
Các thao tác liên quan tới cấu trúc của bảng
Các thao tác liên quan tới dữ liệu trong bảng
table_name: là tên của bảng và bảng phải là duy nhât, không được trùng tên
Các thuộc tính của bảng, bao gồm column1, column2, , column n, sẽ đi kèm với các thông tin bổ sung như kiểu dữ liệu, giá trị dữ liệu và giá trị mặc định Mỗi thuộc tính có thể được gán trạng thái NULL hoặc NOT NULL.
primary_key_name: tên khóa chính gắn liền với tên bảng
primary_key: thuộc tính là khóa chính trong bảng
( column1 datatype [ NULL | NOT NULL ], column2 datatype [ NULL | NOT NULL ],
column_n datatype [ NULL | NOT NULL ]
CONSTRAINT primary_key_name PRIMARY
VIEW là một bảng ảo trong cơ sở dữ liệu, được định nghĩa qua câu lệnh SELECT, cho phép lấy dữ liệu từ nhiều bảng khác nhau.
Cú pháp tạo khung nhìn
view_name là tên view mà bạn muốn tạo
columns: trường dữ liệu truy vấn đến tương ứng
Chỉ mục
INDEX là một cấu trúc dữ liệu làm tăng thời gian và hiệu suất tìm kiếm dữ liệu dựa trên thuộc tính cho trước
Oracle offers various types of indexes, each with unique advantages suited for specific scenarios These include B-tree indexes, Bitmap indexes, index-organized tables, hash clusters, index clusters, and nested tables.
Lưu ý khi sử dụng chỉ mục
Các chỉ mục không nên sử dụng trong các bảng nhỏ
Bảng hoặc các thuộc thường xuyên bị sửa đổi dữ liệu
Không bên sử dụng trên các thuộc tính mà chứa số lượng lượng giá trị NULL
Cú pháp tạo chỉ mục
Cú pháp đổi tên chỉ mục
UNIQUE: Chỉ ra răng sự kết hợp các giá trị trong các thuộc tính được lập ra là duy nhất
index_name: tên chỉ mục
CREATE VIEW view_name AS
CREATE [UNIQUE] INDEX index_name
ON table_name (column1, column2, column_n)
RENAME TO new_index_name;
table_name: tên bảng tạo chỉ mục
column1, column2, column_n: Các thuộc tính sử dụng trong chỉ mục.
Hàm và thủ tục
Thủ tục (STORE PROCEDURE) là một nhóm lệnh được gom lại để thực hiện một mục đích cụ thể, giúp đơn giản hóa việc xử lý Khi khai báo tham số truyền vào, người dùng chỉ cần gọi tên thủ tục và truyền tham số mà không cần lặp lại các lệnh, từ đó tiết kiệm thời gian và tăng hiệu quả trong lập trình.
Thủ tục không trả về giá trị trực tiếp như hàm Cung cấp một phương pháp hữu ích cho việc thực thi lặp lại cùng một nhiệm vụ:
Giúp tái sử dụng code
Sử dụng lời gọi mỗi khi thực thi
Cú pháp tạo thủ tục
procedure_name là tên của thủ tục
OR REPLACE: Khai báo tham số này thì nó sẽ xóa thủ tục có tên trùng với tên của procedure đang chạy
parameter1, parameter2: là các tham số truyền vào thủ tục có dạng:
Tên tham số [Kiểu tham số] kiểu dữ liệu
declaration_section: phần khai báo biến
executable_section: phần lệnh PL/SQL để thục hiện thủ tục
EXCEPTION: trường hợp ngoại lệ với thủ tục phía trên
Mỗi tham số truyền vào được xác định bởi ba loại như sau:
IN: là kiểu mặc định, tham số này sẽ là dữ liệu đầu vào
OUT: tham số này sẽ là dữ liệu đầu ra, sử dụng đề lấy kết quả trả về từ thủ tục
CREATE [OR REPLACE] PROCEDURE procedure_name
IN OUT: tham số vừa là đầu vào vừa là đầu ra, và thường thì giá trị tại đầu ra sẽ bị thay đổi
Hai cách truyền giá trị cho tham số là truyền theo tên và truyền theo vị trí
Cú pháp gọi thủ tục
Hàm (FUNCTION) là một tập hợp các lệnh thực hiện chức năng cụ thể, tương tự như thủ tục Tuy nhiên, điểm khác biệt là hàm sẽ trả về một giá trị ngay tại thời điểm được gọi.
Với các thông số như thủ tục trong đó có:
datatype: Kiểu dữ liệu của tham số
Khi gọi hàm phải khai báo một biến trả về
Gọi hàm – cú pháp gọi hàm (với Variable: biến)
Ràng buộc và Bẩy lỗi
TRIGGER là một loại stored procedure đặc biệt ở trạng thái sẵn sàng, được kích hoạt bởi câu lệnh thay đổi dữ liệu trên bảng hoặc khung nhìn
Các thành phần của TRIGGER
Bảng (khung nhìn) liên kết với trigger
Thời điểm kích hoạt (FOR / AFTER / INSTEAD OF)
CREATE [OR REPLACE] FUNCTION function_name
Các thao tác được thực hiện sau khi kích hoạt
Bạn không thể tạo Before Trigger cho View
Bạn không thể cập nhật dữ liệu cũ, chỉ có thể cập nhật dữ liệu mới
Với các thành phần tương tự như cú pháp trên
DISABLE | ENABLE: ở phần này ta chọn DISABLE để tắt và ENABLE để bật Chỉ chọn 1 trong 2 thành phần trên Ở một TABLE
Tắt tất cả TRIGGER trong Table
CREATE [ OR REPLACE ] TRIGGER trigger_name
AFTER|BEFORE INSERT OR UPDATE OR DELETE
[ FOR EACH ROW ] DECLARE declaration_section
BEGIN executable_section (trigger_code)
ALTER TRIGGER trigger_name DISABLE | ENABLE;
ALTER TABLE table_name DISABLE | ENABLE ALL TRIGGERS;
QUẢN TRỊ NGƯỜI DÙNG VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE
Quyền đăng nhập hệ thống
Hình 0.33Mô hình truy cập
Điều kiển truy cập (Access control)
Điều kiển toàn vẹn (Integrity controls)
Cơ chế bảo mật thông qua các:
Quyền (Permission) quy định các hành động người dùng có thể thực hiện trên CSDL hoặc các đối tượng CSDL cụ thể
Vai trò (Role) các quyền được gán cho người dùng
Người dùng được gán các quyền và vai trò nhất định để truy, sử dụng CSDL
Oracle offers a range of advanced security features, including the Defense in Depth security solution, Oracle Label Security (OLS) for label-based safety, Virtual Private Database (VPD) for isolated database access, Transparent Data Encryption (TDE) for seamless data encryption, robust authentication mechanisms, and secure backup and recovery options.
Oracle có các cơ chế xác thực người dùng như sau:
Xác thức cơ sở dữ liệu: cơ sỡ dữ liệu thực nhiện nhận dạng và xác thực người dùng
Xác thực và ủy quyền toàn bộ: người dùng được xác thực toàn bộ bằng SSI
Xác thức và ủy quyền ủy nhiệm: Máy chủ tầng trung gian thực hiện xác thực
Ngoài ra khi tạo người dùng (USER) ta còn có Xác thực và ủy quyền người dùng.
Quyền và vai trò
Tạo và gán quyền, vai trò cho người dùng
Cú pháp Kết nối với tư cách người dùng Hệ thống
Cú pháp Tạo truy vấn người dùng
Cú pháp Cung cấp các vai trò
Cú pháp Cung cấp đặc quyền ưu tiên
Cú pháp Cung cấp quyền truy cập vào các bảng
Cú pháp thu hồi quyền và vai trò (sử dụng REVOKE)
role_name: tên của các chức danh cần thu hồi
user: tên user bị thu hồi chức danh
role: tên của các chức danh bị thu hồi chức danh
PUBLIC: thu hồi các quyền hay chức danh từ tất cả các người dùng
Mặc định thì hệ thống có các Database Administrator (DBA) như:
CONNECT /@;
CREATE USER IDENTIFIED BY ;
GRANT CONNECT, RESOURCE, DBA TO ;
GRANT ANY PRIVILEGE TO ;
GRANT UNLIMITED TABLESPACE TO ;
GRANT SELECT,UPDATE,INSERT ON TO ;
REVOKE role_name [, role_name ]
SYS has full privileges, including the ability to grant permissions to other users (ADMIN OPTION), and can perform startup, shutdown, and maintenance operations on the database It also owns the Data Dictionary and the Automatic Workload Repository (AWR).
SYSTEM: Có các quyền DBA, MGMT_USER và roles AQ_ADMINISTRATOR_ROLE
DBSNMP: Có role OEM_MONITOR
SYSMAN: Có các quyền MGMT_USER, RESOURCE và roles SELECT_CATALOG_ROLE
Trên Oracle Database, chúng ta có thể thực hiện phân quyền hạn cho một User Các quyền hạn này được chia làm 2 loại:
Nhóm quyền hệ thống cho phép người dùng thực hiện các thay đổi trong các hoạt động của cơ sở dữ liệu, như quyền tạo một tablespace Có hơn 170 quyền hệ thống khác nhau, trong đó nhiều quyền cho phép thao tác trên nhiều đối tượng của các người dùng khác nhau thông qua từ khóa ANY.
Truy vấn trên bất cứ table nào
GRANT SELECT ANY TABLE TO
Thêm mới trên bất cứ table nào
GRANT INSERT ANY TABLE TO
Cập nhật trên bất cứ table nào
GRANT UPDATE ANY TABLE TO
Xóa trên bất cứ table nào
GRANT DELETE ANY TABLE TO
Quyền đối tượng là nhóm quyền cho phép người dùng thực hiện các thay đổi trên các đối tượng như bảng, chế độ xem, chuỗi, thủ tục và hàm Nếu không thực hiện phân quyền, người dùng chỉ có thể thao tác trên các đối tượng mà họ sở hữu.
Oracle cung cấp công cụ quản lý quyền hiệu quả thông qua vai trò (ROLE) Vai trò là tập hợp các quyền có liên quan, được gán cho người dùng hoặc vai trò khác, nhằm đơn giản hóa việc quản lý quyền trong hệ thống.
Tạo và sửa chữa các ROLE
role_name: tên của chức danh
NOT IDENTIFIED: chỉ định không cần kiểm tra chức danh khi enable chức danh
BY password: mật khẩu người dùng cần cung cấp khi enable chức danh
EXTERNALLY: chỉ định user phải được xác lập bởi dịch vụ bên ngoài (như hệ điều hành hay dịch vụ bên thứ ba) trước khi enable chức danh
Câu lệnh CREATE ROLE IDENTIFIED GLOBALLY chỉ định rằng việc kiểm tra xác lập chức danh thông qua Oracle Security Server
Cú pháp thu hồi ROLE
role_name: tên của các chức danh cần thu hồi
user: tên user bị thu hồi chức danh
Role: tên của các chức danh bị thu hồi chức danh
PUBLIC: thu hồi các quyền hay chức danh từ tất cả các user
Bảng thông tin về role
CONNECT Chức danh cung cấp sẵn để tương thích với các phiên bản trước đó
DBA Tất cả các quyền hệ thống, có tuỳ chọn: WITH ADMIN OPTION EXP_FULL_DATABASE Quyền export dữ liệu của database
IMP_FULL_DATABASE Quyền import dữ liệu vào database
DELETE_CATALOG_ROLE Quyền xoá dữ liệu
EXECUTE_CATALOG_ROLE Quyền thực hiện một thủ tục
SELECT_CATALOG_ROLE Quyền lấy dữ liệu
Bảng 0.2Bảng thông tin về role
CREATE ROLE role_name [NOT IDENTIFIED |
REVOKE role_name [, role_name ]
Thông tin về các role được lấy trong data dictionary Có rất nhiều TABLE và VIEW chứa thông tin về các quyền được gán cho user
DBA_ROLES Tất cả các chức danh trong database
DBA_ROLE_PRIVS chứa thông tin về các chức danh đã được cấp quyền cho người dùng hoặc các chức danh khác ROLE_PRIVS liệt kê các quyền đã được gán cho các chức danh khác DBA_SYS_PRIVS cung cấp thông tin về quyền hệ thống được cấp cho người dùng hoặc chức danh.
ROLE_SYS_PRIVS Quyền hệ thống gán cho chức danh
ROLE_TAB_PRIVS Quyền trên TABLE được gán cho chức danh
SESSION_ROLES Các chức danh được phép của user hiện thời
Bảng 0.3Bảng thông tin về các role 2