Ngôn ngữ lập trình SQL. Tương tác với cơ sở dữ liệu thông qua SQLJ. Chờ bản sao

Để sử dụng đúng cách Lời tiên tri cần phải có sự hiểu biết tốt ngôn ngữ SQL. Tốt " Oracle. Lập trình bằng SQL, PL/SQL và Java"tiết lộ đầy đủ các khả năng của ngôn ngữ SQL trong Oracle và một số khía cạnh của các tính năng không rõ ràng trong việc xây dựng các thiết kế cơ sở dữ liệu tiêu chuẩn.

  • PL/SQL - ngôn ngữ thủ tục, được phát triển bởi Oracle để viết các chương trình con được lưu trữ trong cơ sở dữ liệu. PL/SQL cung cấp mặt bằng chung Lập trình thủ tục trong cả ứng dụng phía máy khách và phía máy chủ, bao gồm các quy trình, gói và trình kích hoạt cơ sở dữ liệu dựa trên máy chủ.
  • Java - ngôn ngữ đối tượng, có thể được sử dụng để hoạt động với Oracle trong nhiều cấu hình khác nhau, bao gồm, nhờ công cụ Java tích hợp của Oracle, làm ngôn ngữ thứ hai cho các thủ tục được lưu trữ. Java độc lập với nền tảng và có thể phục vụ phương tiện hiệu quả tích hợp cơ sở dữ liệu Oracle với các ứng dụng khác, bao gồm cả Internet.

Khóa học đi kèm với các bài tập thực tế cho phép bạn củng cố sự hiểu biết của mình về các khái niệm cơ bản và nắm vững các kỹ thuật kỹ thuật cơ bản về lập trình trong SQL, PL/SQL và Java.

Sau khi hoàn thành khóa học Sinh viên có cơ hội lập trình Oracle độc ​​lập bằng ba ngôn ngữ này để giải quyết các vấn đề phát triển ứng dụng theo kiến ​​trúc máy khách-máy chủ và kiến ​​trúc ba tầng, cũng như các nhiệm vụ quản trị cơ sở dữ liệu.

Sự khác biệt chính giữa khóa học này và một số khóa học khác có chủ đề tương tự là mục tiêu là dạy những học viên cụ thể công việc thực tế với Oracle bằng những ngôn ngữ này, thay vì đọc một chương trình chính thức do bên thứ ba chuẩn bị.

Khóa học được dự định dành cho các nhà phát triển, lập trình viên và quản trị viên cơ sở dữ liệu. Học sinh phải có trình độ máy tính và kinh nghiệm lập trình tốt.

Kiến thức được đưa ra theo các phiên bản sau:

  • Cơ sở dữ liệu Oracle 8i
  • Cơ sở dữ liệu Oracle 9i
  • Cơ sở dữ liệu Oracle 10g
  • Cơ sở dữ liệu Oracle 11g
  • Cơ sở dữ liệu Oracle 12c

Chương trình khóa học "Oracle. Lập trình bằng SQL, PL/SQL và Java"

Giới thiệu về Oracle SQL

1. Các khái niệm cơ bản

  • Cơ sở dữ liệu và mô hình quan hệ
  • Cơ sở dữ liệu
  • Cách tiếp cận quan hệ để lập mô hình dữ liệu
  • Triển khai hệ quản trị cơ sở dữ liệu quan hệ
    Các cách tiếp cận khác để lập mô hình dữ liệu và các loại DBMS khác
  • SQL là gì?
  • Lịch sử và tiêu chuẩn
  • SQL phương ngữ của Oracle
  • PL/SQL

2. SQL*Plus và nhập câu trong SQL

3. Ví dụ về "lược đồ" cơ sở dữ liệu

4. Tạo, xóa bảng và thay đổi cấu trúc

  • Mệnh đề TẠO BẢNG
  • Các kiểu dữ liệu cột
  • Làm rõ trong mô tả cột
  • Dấu hiệu NOT NULL
  • Giá trị mặc định
  • Kiểm tra CHECK các giá trị vào bảng
  • Tạo bảng dựa trên kết quả truy vấn cơ sở dữ liệu
  • Đặt tên bảng và cột
  • Cột ảo
  • Xóa bảng
  • Thay đổi cấu trúc bảng
  • Hợp lý và đặc tính kỹ thuật xóa cột
  • Sử dụng từ đồng nghĩa để đặt tên bảng
  • Đổi tên
  • Thông tin tham khảo về các bảng trong cơ sở dữ liệu

5. Các thành phần cơ bản của câu DML: Biểu thức

  • Giá trị dữ liệu tức thời (nghĩa đen)
  • Giá trị số
  • Dòng văn bản
  • Khoảnh khắc và khoảng thời gian
  • "Biến hệ thống"
  • Biểu thức số
  • Biểu thức trên dòng văn bản
  • Biểu thức về loại "thời điểm"
  • Chức năng
  • Hàm vô hướng
  • biểu thức CASE
  • Truy vấn vô hướng
  • Biểu thức điều kiện
  • Lưu ý đặc biệt về các giá trị còn thiếu trong biểu thức

6. Lấy mẫu dữ liệu

  • Cụm từ mệnh đề SELECT
  • Quy tắc chung để xây dựng mệnh đề SELECT
  • Mệnh đề SELECT được xử lý như thế nào
  • Ví dụ về mệnh đề SELECT 1
  • Ví dụ 2 mệnh đề SELECT
  • Tính toàn vẹn logic của việc xử lý mệnh đề SELECT
  • Mệnh đề FROM của mệnh đề SELECT
  • Tùy chọn cột
  • Các cột từ các bảng khác nhau
  • Sử dụng bí danh trong một yêu cầu
  • Truy vấn con dưới dạng nguồn dữ liệu
  • Trường hợp đặc biệt cho yêu cầu kết nối
  • Mệnh đề WHERE của mệnh đề SELECT
  • Thuật toán chung để xử lý cụm từ WHERE
  • Toán tử so sánh để thu được biểu thức có điều kiện
  • Các từ nối AND, OR và NOT để kết hợp các biểu thức điều kiện
  • Toán tử có điều kiện IS
  • Toán tử THÍCH có điều kiện
  • Toán tử có điều kiện GIỮA
  • Toán tử IN có điều kiện với tập hợp đếm được rõ ràng
  • Toán tử có điều kiện IN với tập hợp lấy từ cơ sở dữ liệu
  • Điều kiện so sánh với truy vấn phụ
  • Chỉ định BẤT KỲ và TẤT CẢ để so sánh với các phần tử của một tập hợp giá trị
  • Toán tử có điều kiện EXISTS
  • Mệnh đề SELECT và các hàm trong mệnh đề SELECT
  • Viết tắt để chọn nhóm cột
  • Biểu thức trong mệnh đề SELECT
  • Truy vấn con trong mệnh đề SELECT
  • Làm rõ RIÊNG BIỆT
  • Đặc điểm hoạt động của các hàm tổng hợp tiêu chuẩn trong mệnh đề SELECT
  • Đặt tên cột trong kết quả truy vấn
  • Hàm hệ thống ("biến") ROWNUM và các tính năng sử dụng của nó
  • Chức năng phân tích
  • Biểu thức tham chiếu kiểu tới con trỏ
  • Mệnh đề ORDER BY của mệnh đề SELECT
  • Cách sắp xếp đơn giản nhất
  • Sắp xếp theo giá trị biểu thức
  • Chỉ định số cột
  • Thứ tự chuỗi nhị phân và "ngôn ngữ"
  • Tính năng xử lý giá trị thiếu (NULL)
  • Mệnh đề GROUP BY và HAVING của mệnh đề SELECT
  • Một ví dụ về cách giải cụm từ GROUP BY ... HAVING
  • Thiếu giá trị trong biểu thức nhóm
  • Những ví dụ khác
  • Chỉ định ROLLUP, CUBE và GROUPING SETS trong mệnh đề GROUP BY
  • Mệnh đề CONNECT BY của mệnh đề SELECT
  • Các hàm hệ thống đặc biệt trong mệnh đề CONNECT BY
  • Thứ tự kết quả
  • Mệnh đề WITH xây dựng trước các truy vấn phụ
  • Kết hợp các mệnh đề SELECT
  • Kết hợp với toán tử UNION
  • Kết hợp với toán tử INTERSECT
  • Kết hợp với toán tử MINUS
  • Truy vấn con
  • Tham gia hoạt động trong mệnh đề SELECT
  • Các loại kết nối
  • Cú pháp mới trong phiên bản 9
  • Đặc điểm của hoạt động kết nối

7. Cập nhật dữ liệu trong bảng

  • Thêm hàng mới
  • Rõ ràng thêm một hàng
  • Thêm hàng được truy xuất bởi truy vấn con
  • Thêm vào nhiều bảng bằng một câu lệnh
  • Thay đổi giá trị trường hiện có
  • Sử dụng các giá trị mặc định trong INSERT và UPDATE
  • Xóa các hàng khỏi bảng
  • Xóa có chọn lọc
  • Tùy chọn loại bỏ hoàn toàn
  • Kết hợp UPDATE, INSERT và DELETE trong một câu lệnh
  • Tính toàn vẹn logic của các toán tử cập nhật dữ liệu bảng và phản hồi các lỗi
  • Phản ứng với các lỗi trong quá trình thực hiện
  • Ghi lại các thay đổi trong cơ sở dữ liệu
  • Hệ thống thay đổi thông tin số cho một dòng
  • Tăng tốc thực thi COMMIT

8. Truy cập nhanh các giá trị dữ liệu trong quá khứ

  • Đọc giá trị hàng của bảng cũ
  • Khôi phục bảng và dữ liệu từ các bảng đã xóa trước đó

9. Ràng buộc toàn vẹn mạch

  • Các loại ràng buộc toàn vẹn mạch
  • Ràng buộc KHÔNG NULL
  • Khóa chính
  • Tính duy nhất của các giá trị trong cột
  • Khóa ngoại
  • Điều kiện bổ sung cho một giá trị trong trường chuỗi
  • Điều kiện bổ sung liên kết các giá trị trong nhiều trường liên tiếp
  • Thêm hạn chế nếu có vi phạm
  • Đình chỉ kiểm tra ràng buộc lược đồ trong một giao dịch
  • Vô hiệu hóa hoặc kích hoạt các ràng buộc toàn vẹn mạch
  • Công nghệ kích hoạt và vô hiệu hóa các ràng buộc toàn vẹn mạch
  • Quy tắc toàn vẹn phức tạp hơn

10. Bảng ảo (xuất phát, hiển thị: lượt xem)

  • Cơ bản ("cơ bản") và bảng ảo
  • Cập nhật bảng ảo
  • Hạn chế của việc sửa đổi dữ liệu trực tiếp thông qua bảng ảo
  • Cấm cập nhật ngay lập tức
  • Giảm khả năng cập nhật ngay lập tức
  • Bảng ảo có lưu trữ dữ liệu
  • Các tính năng của bảng ảo được đặt tên
  • Các bảng ảo không được đặt tên mà không lưu trữ dữ liệu

11. Các kiểu không vô hướng cho dữ liệu “phức tạp” trong Oracle

  • Đối tượng được lưu trữ
  • Ví dụ đơn giản
  • Sử dụng thuộc tính và phương thức đối tượng
  • Sử dụng tài liệu tham khảo đối tượng
  • Bộ sưu tập
  • Bảng lồng nhau
  • Mảng VARRAY
  • XMLTYPE
  • Ví dụ đơn giản
  • Bảng dữ liệu XMLTYPE
  • Chuyển đổi dữ liệu dạng bảng sang XMLTYPE
  • Nhập BẤT CỨ DỮ LIỆU

12. Các loại đối tượng lưu trữ phụ trợ

  • Trình tạo số duy nhất
  • Thư mục hệ điều hành
  • Bảng có dữ liệu lưu trữ tạm thời
  • Liên kết tới cơ sở dữ liệu khác
  • chương trình con
  • Chỉ mục
  • Các chỉ mục để kiểm tra các ràng buộc về tính toàn vẹn của mạch
  • Bàn có lưu trữ ngoài dữ liệu

13. Một số lưu ý khi tối ưu câu lệnh SQL

14. Giao dịch và khóa

  • Giao dịch trong Oracle
  • Ví dụ về khóa dữ liệu theo giao dịch
  • Các loại ổ khóa
  • Khóa ngầm định trên các hoạt động DML
  • Tác động của khóa ngoại
  • Khóa bảng rõ ràng (loại TM) bằng lệnh LOCK
  • Khóa rõ ràng các hàng trong bảng riêng lẻ
  • Một hình thức chặn nhóm không có giấy tờ
  • Chặn theo mệnh đề DDL

15. Người sử dụng (chương trình) và quỹ bổ sung hạn chế truy cập dữ liệu

16. Bảng danh mục hệ thống (tham khảo từ điển)

18. SQL nhúng

  • Một số ví dụ về viết truy vấn

19. Cấp người lao động theo mức lương cao hơn (thấp hơn)

  • Câu hỏi tới cơ sở dữ liệu
  • “Rõ ràng” nhưng giải pháp sai
  • Những quyết định đúng đắn
  • Giải pháp Top-N (kể từ phiên bản 8.1.5)
  • Giải pháp sử dụng hàm phân tích xếp hạng

20. Cấu trúc lại truy vấn với HAVING

22. KHÔNG Bẫy có điều kiện

23. Bẫy ở NOT IN (S)

Giới thiệu về PL/SQL

1. Các khái niệm cơ bản

  • Vị trí của PL/SQL trong kiến ​​trúc Oracle
  • Cấu trúc chung của một chương trình PL/SQL

2. Các kiểu và cấu trúc dữ liệu cơ bản

  • Biến vô hướng
  • Các loại số
  • Các loại chuỗi
  • Điểm thời gian và khoảng thời gian
  • Biến Boolean
  • các loại LOB
  • Khai báo biến và hằng
  • bài viết
  • Khai báo các mục trong một chương trình
  • Bài tập
  • Liên kết đến các loại dữ liệu đã có sẵn
  • Loại phụ tùy chỉnh

3. Biểu thức

4. Cấu trúc điều khiển chính

  • Phân nhánh chương trình
  • Ưu đãi NẾU-THÌ
  • Mệnh đề IF-THEN-ELSE
  • Đề xuất IF-THEN-ELSIF
  • Ưu đãi TRƯỜNG HỢP
  • Chuyển giao quyền kiểm soát vô điều kiện
  • Chu kỳ
  • Vòng lặp đơn giản
  • Chu kỳ đếm (FOR)
  • Chu kỳ trên con trỏ (FOR)
  • Trong khi lặp lại
  • Mô phỏng vòng lặp REPEAT UNTIL
  • Nhãn theo chu kỳ và khối

5. Chương trình con

  • Thói quen địa phương
  • Xác định lại tên "bên ngoài"
  • Chuyển tiếp thông báo
  • Lặp lại tên ở cùng cấp độ (quá tải)
  • 6. Tương tác với cơ sở dữ liệu: SQL tĩnh
  • Sử dụng bản ghi thay vì (danh sách) vô hướng

7. Điều chỉnh các thay đổi trong cơ sở dữ liệu

  • Quản lý giao dịch
  • Ổ khóa
  • Giao dịch tự động

8. SQL động tích hợp

  • Các câu lệnh SQL động được nhúng
  • Ví dụ so sánh về hai cách làm việc với SQL động

9. Sử dụng con trỏ

  • Con trỏ rõ ràng
  • Khai báo con trỏ rõ ràng
  • Mở con trỏ rõ ràng
  • Truy xuất kết quả thông qua một con trỏ rõ ràng
  • Đóng một con trỏ rõ ràng
  • Không có hạn chế về thay đổi bảng khi con trỏ mở
  • Thuộc tính cho con trỏ rõ ràng
  • Một số ví dụ về sử dụng vòng lặp và con trỏ
  • Con trỏ có khóa hàng trong bảng
  • Mệnh đề CHỌN ... ĐỂ CẬP NHẬT
  • Thận trọng khi sử dụng khóa con trỏ
  • Khả năng thay đổi các dòng được chọn bởi con trỏ
  • Tham chiếu con trỏ
  • Thông tin chung
  • Ví dụ về việc sử dụng để cấu trúc một chương trình
  • Con trỏ ngầm

10. Xử lý ngoại lệ

  • Khai báo ngoại lệ
  • Xử lý ví dụ
  • Ném ngoại lệ
  • Bảo hiểm và phân phối
  • Ngoại lệ chặn "nội bộ"
  • Sử dụng hàm SQLCODE và SQLERRM

11. Các thủ tục và hàm được lưu trữ

  • Cú pháp chung
  • Tùy chọn
  • Loại tham số
  • Chế độ sử dụng tham số
  • Giá trị mặc định
  • Các cách xác định giá trị thực tế cho tham số
  • Truy cập các tham số và biến cục bộ trong phần thân của chương trình con
  • Hướng dẫn trình biên dịch khi tạo chương trình con
  • Các thói quen được lưu trữ và đặc quyền truy cập dữ liệu trong cơ sở dữ liệu
  • Hai logic để triển khai đặc quyền truy cập vào dữ liệu cơ sở dữ liệu
  • Tính năng chuyển đặc quyền thông qua vai trò

12. Thủ tục kích hoạt

  • Tạo thủ tục kích hoạt
  • Vô hiệu hóa thủ tục kích hoạt
  • Thủ tục kích hoạt cho các sự kiện danh mục DML
  • Thủ tục kích hoạt kết hợp
  • Quản lý các giao dịch trong phần nội dung của quy trình kích hoạt
  • Trình tự các thủ tục kích hoạt khi có một vài thủ tục trong số đó
  • Thủ tục kích hoạt THAY THẾ cho các bảng được suy ra
  • Thủ tục kích hoạt cho các sự kiện DDL
  • Thủ tục kích hoạt cho các sự kiện ở cấp độ lược đồ và cơ sở dữ liệu

13. Các gói trong PL/SQL

  • Cấu trúc gói chung
  • Truy cập các phần tử gói
  • Dữ liệu gói (Toàn cầu)
  • Gọi lẫn nhau và lặp lại tên
  • Đang khởi tạo gói
  • Thực dụng SERIALLY_REUSABLE

14. Gọi các hàm PL/SQL trong câu lệnh SQL

  • Yêu cầu và hạn chế khi sử dụng hàm người dùng trong SQL
  • Gọi hàm từ các gói trong SQL
  • Giải quyết xung đột cột và tên hàm
  • Hàm bảng trong SQL

15. Các kiểu dữ liệu phức tạp hơn: bộ sưu tập

  • Cú pháp khai báo kiểu cho bộ sưu tập
  • Làm việc với mảng kết hợp
  • Tạo bảng lồng nhau và mảng VARRAY trong chương trình
  • Thêm và xóa các mục trong bộ sưu tập
  • Nhiều hành động với bộ sưu tập
  • Chuyển đổi bộ sưu tập
  • Phương pháp làm việc với các bộ sưu tập trong chương trình
  • Ví dụ về việc sử dụng các bộ sưu tập trong chương trình
  • Đặc quyền
  • Thực hiện nối tiếp và liên kết các truy vấn với mảng
  • Thực hiện nối tiếp các hoạt động tương tự: xây dựng FORALL
  • Liên kết với mảng: cấu trúc BULK COLLECT INTO
  • Ví dụ cho mạch SCOTT
  • Sử dụng các bộ sưu tập trong các hàm bảng (triển khai phát trực tuyến)
  • Ví dụ đơn giản
  • Sử dụng để chuyển đổi dữ liệu

16. Thủ tục gỡ lỗi trong PL/SQL

  • Bảng từ điển
  • Sự phụ thuộc thường lệ
  • Gói hệ thống
  • Gói DBMS_PROFILER
  • Gói DBMS_TRACE
  • Các hàm gói DBMS_UTILITY
  • Gói DBMS_DEBUG
  • Ví dụ về xây dựng hồ sơ hoạt động của chương trình

17. Hệ thống lập trình cho PL/SQL

18. Các gói hệ thống PL/SQL

  • Gói STANDARD và DBMS_STANDARD
  • Các gói hệ thống khác
  • Ghi dữ liệu từ chương trình vào file và ngược lại
  • Mã hóa dữ liệu
  • Tự động chạy các công việc trong Oracle
  • Quản lý vị trí động của các đối tượng trong bộ đệm thư viện
  • Thao tác với các đối tượng NULL không có cấu trúc lớn
  • Truy cập các giá trị dữ liệu cũ
  • Gửi tin nhắn từ chương trình PL/SQL
  • Cơ hội làm việc trong PL/SQL với COM Automation
  • thông tin thêm
  • Một ví dụ đơn giản về tách biệt việc mở và xử lý con trỏ
  • Hơn ví dụ phức tạp phân công công việc

20. Các thuộc tính của thủ tục kích hoạt ở cấp độ lược đồ cơ sở dữ liệu và các sự kiện trong DBMS

GIỚI THIỆU LẬP TRÌNH ORACLE TRONG JAVA

1. Các khái niệm cơ bản

  • Vị trí của Java trong Kiến trúc Oracle
  • Mối quan hệ và mối quan hệ giữa PL/SQL và Java trong Oracle

2. Đặc điểm của Java và môi trường hoạt động của chương trình Java

  • Kiến trúc Java
  • Các thành phần phần mềm trong môi trường phát triển Java
  • Cài đặt môi trường phát triển Java
  • Môi trường hệ điều hành

3. Tạo chương trình độc lập trong Java

  • Một ví dụ về phát sóng và thực hiện một chương trình

4. Tạo các chương trình lưu trữ Java trong Oracle

  • Các thành phần Oracle DBMS bổ sung để làm việc với các chương trình được lưu trữ trong Java
  • Hạn chế đối với các chương trình được lưu trữ trong Java
  • Cài đặt, gỡ cài đặt và cập nhật JServer/OJVM
  • Ví dụ về tạo một chương trình Java được lưu trữ
  • Xây dựng với tảijava
  • Tạo bằng câu lệnh SQL
  • Gọi một lớp đã tải
  • Làm việc với từ điển tham khảo
  • Tổ chức thông tin tham khảo
  • Xem các phần tử Java
  • Xem nguồn
  • Chuyển đổi tên
  • Các tính năng của JVM nhúng
  • Thông dịch viên ojvmjava

5. Các yếu tố của lập trình Java

  • Khái niệm cơ bản về ngôn ngữ
  • Cấu trúc ngôn ngữ cơ bản
  • Biến
  • Toán tử
  • Biểu thức, mệnh đề và khối
  • Chuyển giao quyền kiểm soát
  • Đối tượng và cấu trúc đơn giản
  • Lớp học và kế thừa
  • Tạo lớp học
  • Cơ chế sử dụng lớp trong chương trình
  • Di sản
  • Giao diện
  • Xử lý ngoại lệ
  • Một số kỹ thuật lập trình Java
  • Giao diện đồ họa
  • Nhóm đối tượng (bộ sưu tập)
  • Truyền phát đầu vào và đầu ra
  • Tham số hóa hoạt động của chương trình bằng cách sử dụng bộ thuộc tính
  • Khả năng tuần tự hóa đối tượng

6. Tương tác với cơ sở dữ liệu qua JDBC

  • Sử dụng JDBC
  • Trình điều khiển JDBC và JDBC
  • Trình điều khiển JDBC trong Oracle
  • Cài đặt trình điều khiển JDBC để làm việc với Oracle
  • Chương trình Java để kiểm tra kết nối qua JDBC
  • Làm việc với dữ liệu Oracle từ các chương trình Java bên ngoài
  • Truy cập cơ sở dữ liệu thông qua trình điều khiển OCI dày
  • Làm việc với dữ liệu Oracle từ các chương trình Java được lưu trữ
  • Truy cập cơ sở dữ liệu thông qua trình điều khiển dày đặc (“bản địa”, kprb)
  • Truy cập cơ sở dữ liệu thông qua trình điều khiển mỏng
  • Truy cập dữ liệu từ các thủ tục kích hoạt của Oracle

7. Thuộc tính bổ sung Giao thức JDBC

  • Kết nối với DBMS bằng kỹ thuật DataSource
  • Một ví dụ đơn giản về kết nối bằng kỹ thuật DataSource
  • Ví dụ kết nối sử dụng dịch vụ JNDI
  • Ví dụ về bộ nhớ đệm kết nối
  • Ví dụ về tổ chức các kết nối logic
  • Thay đổi dữ liệu trong cơ sở dữ liệu và truy cập các thói quen được lưu trữ
  • Thay đổi dữ liệu
  • Quản lý giao dịch
  • Truy cập các chương trình được lưu trữ
  • Tham số truy vấn
  • Sử dụng các kiểu dữ liệu Oracle
  • Cải thiện hiệu quả của các cuộc gọi cơ sở dữ liệu
  • Yêu cầu định kỳ
  • Thực hiện hàng loạt
  • Liên kết từ chương trình đến con trỏ trong DBMS

8. Tương tác với cơ sở dữ liệu qua SQLJ

  • Chương trình ví dụ đơn giản
  • Dịch và thực thi chương trình với SQLJ
  • Một ví dụ phức tạp hơn: lấy mẫu nhiều lần từ cơ sở dữ liệu
  • Sử dụng SQLJ trong Thủ tục lưu trữ Java
  • Ví dụ với tải từ bên ngoài
  • Ví dụ với phát sóng nội bộ

9. Cơ bản xây dựng ứng dụng web bằng Java và Oracle

  • Phần client: làm việc với applet
  • Một ví dụ về phát sóng và thực thi một applet
  • Máy chủ web Apache
  • Giao tiếp với máy chủ web thông qua giao thức HTTP
  • Khái niệm chung về nhắn tin HTTP
  • Tổ chức một cuộc đối thoại trong HTML
  • Làm việc với Java Servlet
  • Tìm hiểu Java Servlets và Servlet Container
  • Thiết bị Java Servlet
  • Một ví dụ về soạn thảo một servlet trong Java
  • Ví dụ về việc gọi một servlet
  • Ví dụ về một servlet truy cập cơ sở dữ liệu
  • Sử dụng lớp HttpServlet
  • Làm việc với các trang JavaServer
  • Ví dụ về soạn thảo một trang JSP
  • Ví dụ về truy cập trang JSP
  • Một số tùy chọn để xây dựng trang JSP
  • Các cách truy cập cơ sở dữ liệu từ trang JSP
  • Mô hình MVC tổ chức một ứng dụng cho web

10. Tương tác của các thành phần ứng dụng cho web

  • Chuyển quyền kiểm soát các thành phần ứng dụng web cho nhau
  • Liên hệ chúng tôi trang HTML tới các trang và máy chủ JavaServer
  • Chuyển quyền điều khiển từ các trang JavaServer
  • Chuyển quyền điều khiển sang các thành phần web từ servlet
  • Tóm tắt Java để xây dựng một ứng dụng web
  • Yêu cầu và phản hồi
  • Phạm vi
  • Bối cảnh servlet
  • Đối tượng trang JavaServer được xác định trước
  • Truyền dữ liệu thành phần ứng dụng web cho nhau
  • Truyền dữ liệu qua các tham số yêu cầu
  • Truyền dữ liệu qua ngữ cảnh và các thành phần JavaBeans

11. Ví dụ xây dựng ứng dụng cho web có nghĩa là Java và Oracle

  • Trang đăng nhập.html
  • Đăng nhập Servlet
  • Trang LogonError.html
  • Trang Main.jsp
  • Trang CompanyData.jsp và lớp orajava.demos.StuffData
  • Đăng xuất servlet
  • Các lớp phát sóng, lưu trữ tệp và kiểm tra ứng dụng
  • thông tin thêm

12. Ví dụ về lập trình đánh dấu JSP tùy chỉnh

  • Một ví dụ về việc sử dụng đánh dấu làm sẵn
  • Ví dụ về lập trình đánh dấu của riêng bạn

Vào cuối khóa học, việc cấp chứng chỉ cuối cùng được thực hiện dưới hình thức bài kiểm tra hoặc dựa trên điểm số cho các công việc thực tế đã hoàn thành trong quá trình đào tạo.

TRONG thế giới hiện đại thật khó để làm mà không có công nghệ thông tin và các sản phẩm phái sinh của chúng - máy tính, điện thoại di động, Internet, v.v., đặc biệt là trong các công ty lớn và tổ chức chính phủ làm việc với nhiều người chứ không chỉ với một vài khách hàng VIP, như trường hợp của một công ty nhỏ. Và nơi có nhiều đối tác, người nộp đơn, v.v. - bạn không thể làm gì nếu không có cơ sở dữ liệu cần thiết để xử lý thông tin. Đương nhiên, thời của sổ cái và thẻ được nhiều người trong thư viện nhớ đến đã qua lâu rồi; những máy tính cá nhân và cơ sở dữ liệu điện tử.

Ngày nay không thể tưởng tượng được công việc của các công ty, ngân hàng hoặc tổ chức chính phủ lớn nhất mà không sử dụng cơ sở dữ liệu và công cụ Kinh doanh thông minh. Cơ sở dữ liệu cho phép chúng ta lưu trữ và truy cập một lượng lớn thông tin, và hệ thống quản lý cơ sở dữ liệu(DBMS) - quản lý các kho thông tin có sẵn.

TRONG Trung tâm đào tạo "Giao diện" Bạn sẽ học cách sử dụng hiệu quả các hệ thống quản lý cơ sở dữ liệu: nhanh chóng tìm thấy thông tin cần thiết, điều hướng lược đồ cơ sở dữ liệu, tạo truy vấn, phát triển và tạo cơ sở dữ liệu.

Việc đào tạo sẽ cho phép bạn không chỉ có được kiến ​​​​thức và kỹ năng mà còn khẳng định chúng bằng cách vượt qua các bài kiểm tra thích hợp để đạt được tư cách chuyên gia được chứng nhận. Các chuyên gia giàu kinh nghiệm trong Hệ quản trị cơ sở dữ liệu của Microsoft Máy chủ SQL hoặc Lời tiên tri có thể quan tâm đến việc học các hệ thống kinh doanh thông minh. Những nhiệm vụ này khá phức tạp, sử dụng bộ máy toán học cồng kềnh, nhưng chúng không chỉ cho phép phân tích các quá trình đang diễn ra mà còn đưa ra dự đoán cho tương lai, vốn đang được yêu cầu. các công ty lớn. Đây là lý do tại sao thị trường đang có nhu cầu về các chuyên gia phân tích kinh doanh và mức thù lao cho công việc của họ rất rất tốt, mặc dù các chuyên gia, quản trị viên và nhà phát triển cơ sở dữ liệu có trình độ cũng không thể phàn nàn về mức thu nhập thấp. Hãy đến với các khóa học của chúng tôi và có được một nghề nghiệp được săn đón và được trả lương cao. Chúng tôi đang chờ đợi bạn!

Vào cuối khóa học, chứng nhận cuối cùng được thực hiện dưới hình thức bài kiểm tra hoặc bằng cách giáo viên chấm điểm cho toàn bộ khóa học dựa trên điểm mà học sinh nhận được khi kiểm tra mức độ nắm vững tài liệu đang được nghiên cứu dựa trên về điểm cho các công việc thực tế được thực hiện trong quá trình đào tạo.

Trung tâm đào tạo "Giao diện" cung cấp các dịch vụ tư vấn về xây dựng mô hình quy trình kinh doanh, thiết kế hệ thông thông tin, phát triển cấu trúc cơ sở dữ liệu, v.v.

  • Cần giúp đỡ trong việc tìm kiếm một khóa học?
    Mục tiêu của chúng tôi là cung cấp đào tạo cho các chuyên gia khi nào và ở đâu họ cần. Có thể điều chỉnh chương trình học theo yêu cầu của khách hàng! Chúng tôi sẽ cho bạn biết những gì bạn quan tâm chứ không chỉ về những gì được quy định nghiêm ngặt trong chương trình khóa học. Nếu bạn cần một khóa học mà bạn không thấy trong lịch trình hoặc trên trang web của chúng tôi hoặc nếu bạn muốn tham gia khóa học vào một thời gian hoặc địa điểm khác, vui lòng cho chúng tôi biết tại

Trong cuốn sách “Oracle dành cho chuyên gia. Kiến trúc và các tính năng chính." khẳng định rằng điều này đơn giản là cần thiết. Ngay cả khi nhóm của bạn có một quản trị viên có năng lực, việc biết cách hoạt động của Oracle DBMS sẽ giúp các bạn hiểu nhau hơn và tương tác hiệu quả hơn, chưa kể trường hợp bạn không có chuyên gia như vậy. Trong chủ đề này, tôi sẽ đề cập đến những điểm chính, việc hiểu rõ những điểm này sẽ cho phép bạn làm việc thành thạo với cơ sở dữ liệu Oracle và sử dụng một số tính năng của nó mang lại lợi ích to lớn cho ứng dụng của bạn. Nếu bạn đã đọc cuốn sách nói trên của Tom Kite thì bạn chỉ cần sử dụng bài viết này như một lời nhắc nhở. Một lưu ý - Tôi đã đọc cuốn sách này từ lâu và khi đó phiên bản mới nhất của cơ sở dữ liệu Oracle là 9i, tôi cũng đã tham gia các khóa học quản trị trên 9, vì vậy nếu ở cấp 10 trở lên có gì đó đã thay đổi và bổ sung thì đừng đổ lỗi cho tôi. Mặc dù tôi viết về những điều khá cơ bản và khó có thể thay đổi nhiều.

Điều gì cho phép cơ sở dữ liệu Oracle hoạt động nhanh như vậy?

Khi bạn thay đổi dữ liệu trong cơ sở dữ liệu, những thay đổi của bạn trước tiên sẽ được chuyển vào bộ đệm, sau đó không đồng bộ trong một số luồng (số lượng có thể được định cấu hình) sẽ được ghi vào đĩa. Một nhật ký đặc biệt (tệp nhật ký trực tuyến) được ghi đồng bộ để có thể khôi phục dữ liệu sau khi bị lỗi nếu nó chưa được xóa từ bộ đệm vào đĩa. Cách tiếp cận này cho phép bạn tăng tốc độ, vì trong trường hợp này mọi thứ được ghi tuần tự vào đĩa trong một tệp và bạn có thể định cấu hình nó để nó được ghi song song với hai hoặc nhiều đĩa hơn, do đó làm tăng độ tin cậy của việc bảo vệ chống mất mát các thay đổi. Cần có một số tệp được mô tả và chúng được sử dụng theo vòng tròn: ngay khi tất cả dữ liệu được bảo vệ bởi một trong các tệp nhật ký đã được ghi bởi quy trình nền vào các khối dữ liệu trên đĩa, thì tệp nhật ký này có thể được sử dụng lại. Do đó, ở một mức độ nào đó, điều này cũng cho phép bạn tiết kiệm tiền bằng cách chỉ có các đĩa nhỏ cực nhanh dành cho các tệp nhật ký nhỏ được sử dụng trong vòng kết nối.

Tôi thường nói về điều này khi họ gợi ý rằng tôi chỉ cần lưu nội dung nào đó vào một tệp trên đĩa, vì nó sẽ “nhanh hơn” do chúng tôi sẽ ghi tất cả dữ liệu một cách tuần tự và đầu đĩa cứng sẽ không phải chạy vòng quanh tìm kiếm các khối ngẫu nhiên Tôi vẫn nhấn mạnh rằng chúng tôi sẽ không đạt được bất cứ điều gì ở đây, vì chúng tôi sẽ ghi vào một đĩa chậm, đĩa này sẽ sớm được nhiều quy trình khác sử dụng tích cực để ghi một số lượng lớn các nhật ký khác nhau và Oracle cũng chỉ ghi đồng bộ vào đĩa của nó tuần tự, như tôi đã mô tả ở trên.

Cơ chế phục hồi dữ liệu

Trong Oracle DBMS, bạn có thể kích hoạt tính năng lưu trữ các tệp nhật ký hoạt động được mô tả ở trên và tất cả các thay đổi sẽ được lưu trữ. Do đó, nếu chúng tôi mất bất kỳ đĩa nào có khối dữ liệu, chúng tôi có thể khôi phục chúng vào bất kỳ thời điểm nào, kể cả thời điểm ngay trước khi xảy ra sự cố, bằng cách đưa nhật ký trực tuyến hiện tại vào các tệp nhật ký được lưu trữ cuối cùng.

Chờ bản sao

Ở trên tập tin lưu trữ có thể được gửi qua mạng và áp dụng nhanh chóng vào bản sao của cơ sở dữ liệu. Bằng cách này, bạn sẽ luôn có sẵn một bản sao nóng với độ trễ dữ liệu tối thiểu. Trong một số ứng dụng không cần hiển thị dữ liệu đến giây phút cuối cùng, bạn có thể đặt cấu hình cơ sở dữ liệu đó ở chế độ chỉ đọc và hủy tải phiên bản cơ sở dữ liệu chính và có thể có một số phiên bản như vậy để đọc.

Bị mắc kẹt trong một số yêu cầu viết

Nếu một số truy vấn của bạn bị treo tại bất kỳ thời điểm nào, bạn nên kiểm tra Alert.log để biết sự hiện diện của điểm kiểm tra chưa hoàn chỉnh. Điều này cho thấy rằng các tệp nhật ký trực tuyến của bạn quá lớn hoặc có quá ít tệp nhật ký trực tuyến, do đó dữ liệu mà chúng bảo vệ không có thời gian để xóa từ bộ đệm vào đĩa và DBMS đã lấp đầy tất cả các tệp nhật ký trực tuyến có sẵn và muốn tái sử dụng chúng theo vòng tròn, bạn nên làm gì trong mọi trường hợp không thể thực hiện được nên phải tạm dừng. Mặc dù nếu ứng dụng của bạn chạy trên java, thì trước hết tôi sẽ xem xét sự hiện diện của Full GC trong nhật ký.

Phân đoạn đọc và khôi phục không chặn

Một trong những tính năng đáng chú ý nhất của Oracle DBMS là khả năng đọc không bị chặn, đạt được thông qua phân đoạn khôi phục. Đọc truy vấn tới Oracle không bao giờ không bị chặn vì dữ liệu hầu như luôn có thể được đọc từ phân đoạn khôi phục.

Phân đoạn khôi phục cung cấp một phần thưởng khác: từ đó, bạn có thể thử đọc dữ liệu hơi lỗi thời cho một bảng có trong đó tại một thời điểm nhất định. Tính năng này được gọi là hồi tưởng.

Tuy nhiên, đôi khi phân đoạn khôi phục có thể là một vấn đề: nếu bạn có công việc lớn là xóa hàng loạt dữ liệu (việc xóa sẽ tạo ra ngày càng nhiều dữ liệu trong phân đoạn khôi phục), thì bạn có thể nhận được ORA-01555: ảnh chụp nhanh quá cũ. Điều chính cần nhớ trong trường hợp này là bạn không cần phải viết lại công việc của mình để nó thực hiện mọi N thao tác, nhưng bạn cần sử dụng một phân đoạn khôi phục được tạo đặc biệt riêng cho các hoạt động đó.

Mức độ cô lập giao dịch

Không có mức cô lập READ_UNCOMMITED nào trong Oracle cả. Vấn đề là các cơ sở dữ liệu khác sử dụng nó để đạt được khả năng tương tranh tối đa bằng cách loại bỏ các khóa đọc. Nhưng trong Oracle, việc đọc luôn được thực hiện mà không cần khóa, vì vậy chúng tôi đã có tất cả những lợi ích mà cấp độ này có thể mang lại mà không đưa ra bất kỳ hạn chế bổ sung nào.

Nói chung, dường như chỉ có hai mức cô lập có sẵn trong Oracle: mặc định là READ_COMMITTED, nhưng bạn có thể đặt nó thành SERIALIZABLE nếu muốn.

Tuy nhiên, ở cấp câu lệnh (CHỌN, CẬP NHẬT, v.v.), theo mặc định, bạn đã có REPEATABLE_READ, tức là. trong một câu lệnh duy nhất, bạn luôn có được kết quả đọc nhất quán, điều này tất nhiên đạt được thông qua phân đoạn khôi phục. Tôi luôn thực sự thích ví dụ mà Tom Kite đưa ra để mô tả tác dụng của điều này. Giả sử bạn có một bảng rất lớn chứa các tài khoản và bạn thực hiện CHỌN để lấy số tiền. Trong Oracle, không giống như nhiều cơ sở dữ liệu khác, ngay cả khi ở giữa truy vấn của bạn, một giao dịch khác chuyển một số tiền từ tài khoản đầu tiên sang tài khoản cuối cùng, bạn vẫn sẽ nhận được dữ liệu hiện tại khi bắt đầu truy vấn, kể từ khi bạn tiếp cận dòng cuối cùng mà CHỌN của bạn sẽ thấy, dòng đó đã được thay đổi, sẽ chuyển đến phân đoạn khôi phục và đọc dữ liệu có trong ô này tại thời điểm yêu cầu bắt đầu. Trong nhiều cơ sở dữ liệu khác, bạn sẽ nhận được câu trả lời dưới dạng tổng không bao giờ tồn tại trong bảng của bạn. Tuy nhiên, trong Oracle trong trường hợp này có nguy cơ nhận được ORA-01555: ảnh chụp nhanh quá cũ.

Ngoài các mức cách ly tiêu chuẩn, Oracle còn có cái gọi là giao dịch READ_ONLY, cung cấp REPEATABLE_READ trong toàn bộ giao dịch chứ không chỉ trong một câu lệnh. Nhưng như tên cho thấy, bạn chỉ có thể thực hiện đọc trong giao dịch như vậy.

Hãy để Oracle lưu trữ dữ liệu của bạn một cách hiệu quả

Trong Oracle, tất cả dữ liệu được đọc và ghi không trực tiếp vào đĩa mà thông qua bộ đệm. Theo mặc định, bộ đệm dựa trên thuật toán LRU, vì vậy nếu bạn đọc một số bảng rất lớn theo mã định danh với số lượng lớn, hãy yêu cầu mỗi lần dòng mới, thì những yêu cầu như vậy có thể thay thế một bảng tĩnh nhỏ khỏi bộ đệm, đây sẽ là điều tuyệt vời nhất nếu có vĩnh viễn trong bộ đệm. Với mục đích như vậy, khi tạo bảng, bạn có thể chỉ định loại đặc biệt cache nơi các truy vấn tới bảng của bạn sẽ đi tới. Vì vậy, đối với bảng đầu tiên trong ví dụ được mô tả ở trên, bộ đệm RECYCLE là phù hợp, về cơ bản không lưu trữ bất kỳ dữ liệu nào mà ngay lập tức ném nó ra khỏi bộ đệm. Và đối với bảng thứ hai, bộ đệm KEEP phù hợp, cho phép bạn lưu trữ các bảng tĩnh nhỏ trong bộ đệm và truy vấn đến tất cả các bảng khác sẽ không thay thế dữ liệu từ các bảng tĩnh khỏi bộ đệm.

Dòng trống

Oracle có một tính năng rất thú vị mà bây giờ họ sẽ không bao giờ có thể loại bỏ được. Thực tế là nếu bạn đặt một chuỗi trống vào cơ sở dữ liệu, nó sẽ được lưu dưới dạng NULL. Bằng cách này, trong những lần đọc tiếp theo, bạn sẽ không bao giờ nhận được một chuỗi trống mà chỉ nhận được NULL. Xin hãy nhớ rằng cũng vì lý do tương tự dòng trống không đi vào chỉ mục, vì vậy nếu bạn thực hiện các truy vấn có kế hoạch thực hiện sẽ sử dụng chỉ mục, thì bạn sẽ không bao giờ nhận được các hàng trống (hoặc đúng hơn là NULL), mà sẽ nói thêm về điều đó sau.

Chỉ mục

Ngoài các chỉ mục nổi tiếng ở dạng cây B, Oracle còn có cái gọi là chỉ mục bit, hiển thị rất hiệu suất cao trên các truy vấn tới các bảng có các cột có giá trị rất thưa thớt. Trong trường hợp này, các truy vấn (so với các chỉ mục thông thường) chứa các tổ hợp OR và AND phức tạp với các cột thưa thớt sẽ hoạt động đặc biệt hiệu quả. Chỉ mục này không được lưu trữ trong cây B mà ở dạng bitmap, giúp thực hiện nhanh chóng các truy vấn được mô tả. Câu hỏi về số lượng giá trị duy nhất trong bảng mà tại đó một chỉ mục nhất định sẽ được ưu tiên hơn là rất phức tạp: nó có thể là 10 giá trị duy nhất hoặc 10.000. Tại đây, bạn cần tạo một chỉ mục trên một bảng cụ thể và. xem điều gì sẽ xảy ra Điều chính là không cố gắng sử dụng chỉ mục này trên các bảng có số lượng lớn các phần chèn và cập nhật cho cột được lập chỉ mục, vì các thao tác như vậy sẽ chặn các khu vực khá lớn trong bảng được lập chỉ mục và hệ thống của bạn có thể bị kẹt hoặc thậm chí bị bế tắc.

Một trong những điều tôi luôn rất hài lòng về Oracle là khả năng tạo chỉ mục cho một hàm. Những thứ kia. Nếu bạn phải sử dụng một số chức năng trong truy vấn, thì bạn có thể tạo chỉ mục trên đó và tăng tốc đáng kể thao tác đọc.

Một đặc tính thú vị khác của chỉ mục cần lưu ý là chỉ mục không lưu trữ các giá trị NULL. Vì vậy, nếu bạn thực hiện truy vấn với điều kiện<, >hoặc<>trên một cột được lập chỉ mục thì bạn sẽ không nhận được các hàng ngược có giá trị NULL trong cột được lập chỉ mục. Mặt khác, tính chất này có thể được sử dụng rất hiệu quả trong một số trường hợp cụ thể. Ví dụ: bạn có một bảng rất lớn trong đó các đơn hàng được lưu trữ và không bao giờ được xóa. Và cần có một quy trình nền để gửi tất cả các đơn đặt hàng đến một số hệ thống văn phòng hỗ trợ. Giải pháp đầu tiên tự gợi ý là tạo một cột khác có cờ is_sent, trong đó ban đầu nó là 0 và khi gửi chúng ta sẽ đặt 1. Tức là. Mỗi khi quá trình nền bắt đầu, nó sẽ đưa ra yêu cầu tới bảng với điều kiện is_sent=0. Bạn không thể sử dụng chỉ mục bit ở đây vì bảng được bổ sung rất tích cực. Một chỉ mục cây B thông thường sẽ chiếm nhiều không gian vì nó cần lưu trữ các tham chiếu đến số lượng lớn dòng. Nhưng nếu chúng ta thay đổi logic một chút và đặt NULL thay vì 1 vào cột is_sent thì chỉ mục của chúng ta sẽ rất nhỏ, vì tại bất kỳ thời điểm nào nó sẽ chỉ lưu trữ giá trị NULL, và sẽ có rất ít trong số đó.

Các bảng đều khác nhau

Ngoài các bảng thông thường, Oracle, giống như nhiều cơ sở dữ liệu khác, còn có cái gọi là bảng chỉ mục, khi dữ liệu bảng nằm trực tiếp trong cây chỉ mục khóa chính. Bằng cách này, bạn sẽ đạt được hai điều cùng một lúc: thứ nhất, bạn có ít dữ liệu được đọc bằng khóa chính hơn một lần và thứ hai, dữ liệu trong bảng được sắp xếp theo khóa chính, do đó thao tác ORDER BY PK sẽ được thực hiện mà không cần thêm sắp xếp. Những nhược điểm bao gồm thực tế là bạn sẽ không còn có thể phân biệt giữa việc đăng nhập vào các tệp nhật ký hoạt động của một chỉ mục nhất định.

Một loại bảng tuyệt vời khác là bảng được nhóm, cho phép bạn lưu trữ dữ liệu từ hai hoặc nhiều bảng được nhóm theo một giá trị khóa duy nhất trong một khối dữ liệu. Điều này có thể khá hiệu quả nếu bạn luôn chia sẻ một số bảng.

Dựa trên các bảng được phân cụm, cũng có các bảng băm được phân cụm, trong đó thay vì cây B, một bảng dựa trên hàm băm của khóa cụm được sử dụng để truy cập. Tất nhiên, nghe có vẻ rất thú vị, nhưng thành thật mà nói, tôi chưa bao giờ gặp nó trong thực tế.

Ràng buộc biến

Có lẽ mọi lập trình viên đều đã nghe về điều này, nhưng tôi vẫn sẽ đề cập đến một kỹ thuật bắt buộc như liên kết biến. Thực tế là đối với mỗi yêu cầu duy nhất, một kế hoạch phân tích cú pháp sẽ được xây dựng và đặt vào bộ đệm. Nếu có nhiều truy vấn khác nhau, chẳng hạn như một truy vấn rất phổ biến theo ID, thì mỗi truy vấn sẽ tạo gói riêng và chúng cũng sẽ loại bỏ tất cả các gói khác khỏi bộ đệm, điều này có thể làm tăng đáng kể phản hồi thời gian của cơ sở dữ liệu của bạn.

Cũng cần lưu ý rằng bạn không nên lạm dụng điều này và sử dụng liên kết cho các cột có một lượng nhỏ các giá trị khác nhau, chẳng hạn như cờ is_deleted, vì trong trường hợp này sẽ không có quá nhiều truy vấn khác nhau và có lẽ đối với một truy vấn DBMS cụ thể hơn, có thể xây dựng một kế hoạch hiệu quả hơn.

Một số lưu ý nữa dành cho lập trình viên

Nếu cột của bạn thuộc loại VARCHAR2(100), thì việc cố gắng nhét chuỗi longString.substring(0, 100) vào đó không đảm bảo thành công vì giới hạn 100 trong định nghĩa cột mặc định đề cập đến số byte , không phải ký tự, vì vậy nếu bạn có ký tự 2 byte, bạn có thể gặp rắc rối. Trên thực tế, hành vi này có thể được cấu hình một chút; bạn có thể đọc thêm về nó. Thật tốt nếu bạn chưa thử thực hiện thao tác chèn vào một vòng lặp vô hạn, theo nguyên tắc, nó vẫn chưa hoạt động, vì trong trường hợp này điều đó sẽ không bao giờ xảy ra.

Tốt khuyến nghị chungđối với tất cả các loại cơ sở dữ liệu: không bao giờ cập nhật tất cả các cột trong bảng khi một trường của đối tượng thay đổi. Điều này có vẻ rất rõ ràng, nhưng trong thực tế, mô hình chống này thường xảy ra, vì vậy tôi thực sự khuyên bạn nên kiểm tra xem khung của bạn chỉ CẬP NHẬT các trường đã thực sự thay đổi hay không.

Phần kết luận

Tôi đã cố gắng mô tả hầu hết những điều mà theo tôi, có thể hữu ích cho một lập trình viên. Vì có khá nhiều nên tôi chỉ phác thảo mà không đi sâu vào chi tiết. Làm thế nào chính xác để làm điều đó cài đặt cần thiết Bạn luôn có thể đọc nó trong cuốn sách được đề cập của Tom Kite, tìm nó trong cột Asktom hoặc chỉ cần google nó. Điều quan trọng là phải biết những gì đối với Google và tôi hy vọng chủ đề này đã gợi ý điều đó cho bạn.

thẻ:

  • cơ sở dữ liệu Oracle
  • Cơ sở dữ liệu
Thêm thẻ

Structured Query Language ( ngôn ngữ có cấu trúc truy vấn) hoặc SQL là ngôn ngữ lập trình khai báo để sử dụng trong cơ sở dữ liệu gần như quan hệ. Nhiều tính năng ban đầu của SQL được lấy từ phép tính bộ dữ liệu, nhưng các phần mở rộng gần đây của SQL bao gồm ngày càng nhiều đại số quan hệ.
SQL ban đầu được IBM tạo ra, nhưng nhiều nhà cung cấp đã phát triển ngôn ngữ riêng của họ. Nó được thông qua như một tiêu chuẩn của Mỹ Viện quốc gia(ANSI) năm 1986 và ISO năm 1987. Trong tiêu chuẩn ngôn ngữ lập trình SQL, ANSI tuyên bố rằng cách phát âm chính thức của SQL là "es q el". Tuy nhiên, nhiều chuyên gia cơ sở dữ liệu đã sử dụng cách phát âm "tiếng lóng" "Sequel", phản ánh tên ban đầu của ngôn ngữ, Sequel, sau đó đã được thay đổi do xung đột nhãn hiệu và tên với IBM. Lập trình cho người mới bắt đầu.
Ngôn ngữ lập trình SQLđược sửa đổi vào năm 1992 và phiên bản này được gọi là SQL-92. 1999 sau đó được sửa lại thành SQL:1999 (AKA SQL3). Lập trình cho người giả. SQL 1999 hỗ trợ các đối tượng mà trước đây không được hỗ trợ trong các phiên bản khác, nhưng tính đến cuối năm 2001, chỉ có một số hệ thống quản lý cơ sở dữ liệu hỗ trợ triển khai SQL: SQL 1999.
SQL, mặc dù được định nghĩa là ANSI và ISO, có nhiều biến thể và phần mở rộng, hầu hết trong số đó có các đặc điểm riêng, chẳng hạn như cách triển khai "PL/SQL" của Tập đoàn Oracle hoặc cách triển khai của Sybase và Microsoft có tên là "Transact-SQL", có thể gây nhầm lẫn cho người sử dụng. những người quen với kiến ​​thức cơ bản về lập trình. Cũng không có gì lạ khi việc triển khai thương mại bỏ qua việc hỗ trợ các tính năng chính của tiêu chuẩn, chẳng hạn như các kiểu dữ liệu như ngày và giờ, ưu tiên một số kiểu dữ liệu khác. phiên bản riêng. Kết quả là, không giống như ANSI C hoặc ANSI Fortran thường có thể được chuyển từ nền tảng này sang nền tảng khác mà không có những thay đổi lớn về cấu trúc, các truy vấn ngôn ngữ lập trình SQL hiếm khi có thể được chuyển giữa các nền tảng. hệ thống khác nhau cơ sở dữ liệu mà không cần sửa đổi đáng kể. Hầu hết mọi người trong ngành cơ sở dữ liệu tin rằng sự thiếu tương thích này là có chủ ý, nhằm cung cấp cho mỗi nhà phát triển hệ thống quản lý cơ sở dữ liệu của riêng họ và ràng buộc người mua với một cơ sở dữ liệu cụ thể.
Đúng như tên gọi của nó, ngôn ngữ lập trình SQL được thiết kế cho các mục đích cụ thể và có giới hạn - truy vấn dữ liệu có trong cơ sở dữ liệu quan hệ. Như vậy, nó là một tập hợp các hướng dẫn ngôn ngữ lập trình để tạo mẫu dữ liệu, chứ không phải là ngôn ngữ thủ tục như C hoặc BASIC, được thiết kế để giải quyết nhiều vấn đề hơn. Các phần mở rộng ngôn ngữ như "PL/SQL" được thiết kế để giải quyết hạn chế này bằng cách thêm các phần tử thủ tục vào SQL trong khi vẫn duy trì các lợi ích của SQL. Một cách tiếp cận khác là nhúng các lệnh ngôn ngữ lập trình thủ tục vào các truy vấn SQL và tương tác với cơ sở dữ liệu. Ví dụ: Oracle và những hãng khác hỗ trợ Java trong cơ sở dữ liệu, trong khi PostgreSQL cho phép viết các hàm bằng Perl, Tcl hoặc C.
Một câu nói đùa về SQL: "SQL không có cấu trúc cũng không phải là ngôn ngữ." Điểm của trò đùa là SQL không phải là ngôn ngữ Turing. .

Chọn * từ T
C1 C2
1 Một
2 b
C1 C2
1 Một
2 b
Chọn C1 từ T
C1
1
2
C1 C2
1 Một
2 b
Chọn * từ T trong đó C1=1
C1 C2
1 Một

Cho một bảng T, truy vấn Select * from T sẽ hiển thị tất cả các phần tử của tất cả các hàng trong bảng.
Từ cùng một bảng, truy vấn Select C1 from T sẽ hiển thị các phần tử từ cột C1 của tất cả các hàng trong bảng.
Từ cùng một bảng, truy vấn Chọn * từ T trong đó C1=1 sẽ hiển thị tất cả các phần tử của tất cả các hàng trong đó giá trị của cột C1 là "1".

từ khóa SQL

Các từ SQL được chia thành một số nhóm.

Điều thứ nhất là Ngôn ngữ thao tác dữ liệu hoặc DML(ngôn ngữ quản lý dữ liệu). DML là tập hợp con của ngôn ngữ được sử dụng để truy vấn cơ sở dữ liệu và thêm, cập nhật và xóa dữ liệu.

  • SELECT là một trong những lệnh DML được sử dụng phổ biến nhất và cho phép người dùng chỉ định một truy vấn dưới dạng mô tả tập hợp của kết quả mong muốn. Truy vấn không chỉ định cách sắp xếp kết quả - dịch truy vấn sang dạng có thể được thực thi trong cơ sở dữ liệu là công việc của hệ thống cơ sở dữ liệu, cụ thể hơn là trình tối ưu hóa truy vấn.
  • INSERT được sử dụng để thêm các hàng (bộ chính thức) vào bảng hiện có.
  • UPDATE được sử dụng để thay đổi giá trị dữ liệu trong một hàng của bảng hiện có.
  • DELETE chỉ định các hàng hiện có sẽ bị xóa khỏi bảng.

Ba người khác từ khóa Chà, chúng ta có thể nói rằng họ thuộc nhóm DML:

  • BEGIN WORK (hoặc START TRANSACTION, tùy thuộc vào phương ngữ SQL) có thể được sử dụng để đánh dấu sự bắt đầu của một giao dịch cơ sở dữ liệu sẽ hoàn thành tất cả hoặc hoàn toàn không thực hiện.
  • CAM KẾT tuyên bố rằng tất cả các thay đổi dữ liệu được thực hiện sau khi thực hiện các thao tác đều được lưu lại.
  • ROLLBACK chỉ định rằng tất cả các thay đổi dữ liệu sau lần xác nhận hoặc khôi phục cuối cùng phải bị hủy, cho đến thời điểm được ghi trong cơ sở dữ liệu dưới dạng “khôi phục”.

COMMIT và ROLLBACK được sử dụng trong các lĩnh vực như kiểm soát giao dịch và khóa. Cả hai hướng dẫn đều hoàn thành tất cả các giao dịch hiện tại (tập hợp các thao tác trên cơ sở dữ liệu) và loại bỏ tất cả các khóa thay đổi dữ liệu trong bảng. Sự hiện diện hay vắng mặt của câu lệnh BEGIN WORK hoặc câu lệnh tương tự phụ thuộc vào việc triển khai SQL cụ thể.

Nhóm từ khóa thứ 2 thuộc nhóm Ngôn ngữ định nghĩa dữ liệu hoặc DDL (Ngôn ngữ định nghĩa dữ liệu). DDL cho phép người dùng xác định các bảng mới và các phần tử liên quan của chúng. Hầu hết các cơ sở thương mại dữ liệu SQL có các phần mở rộng riêng trong DDL cho phép kiểm soát các phần tử không chuẩn nhưng thường quan trọng của một hệ thống cụ thể.
Điểm chính của DDL là các lệnh tạo và xóa.

  • CREATE chỉ định các đối tượng (chẳng hạn như bảng) sẽ được tạo trong cơ sở dữ liệu.
  • DROP chỉ định những đối tượng hiện có trong cơ sở dữ liệu sẽ bị xóa, thường là vĩnh viễn.
  • Một số hệ thống cơ sở dữ liệu cũng hỗ trợ lệnh ALTER, cho phép người dùng thay đổi đối tượng hiện có theo nhiều cách khác nhau - ví dụ: đây là cách bạn có thể thêm cột vào bảng hiện có.

Nhóm chìa khóa thứ ba từ SQLNgôn ngữ kiểm soát dữ liệu hoặc DCL (Ngôn ngữ kiểm soát dữ liệu). DCL chịu trách nhiệm về quyền truy cập dữ liệu và cho phép người dùng kiểm soát ai có quyền truy cập để xem hoặc thao tác dữ liệu trong cơ sở dữ liệu. Có hai từ khóa chính ở đây:

  • GRANT - cho phép người dùng thực hiện các thao tác
  • REVOKE - Loại bỏ hoặc hạn chế khả năng thực hiện các thao tác của người dùng.

Hệ thống cơ sở dữ liệu sử dụng SQL

  • liên cơ sở
  • MySQL
  • Lời tiên tri
  • PostgreSQL
  • Máy chủ SQL

Làm thế nào để trở thành một chuyên gia phát triển trang web và bắt đầu kiếm tiền? Các khóa học video không tốn kém với phần giới thiệu giới thiệu.

Năm sản xuất: 2002

Nhà phát hành: Gelios ARV

Định dạng: PDF

Cuốn sách "Làm việc với Oracle" là phần giới thiệu nhanh về các phương pháp và công cụ của Oracle DBMS phân tán. Nền tảng phương pháp luận của việc xử lý thông tin phân tán, các đối tượng chính của cơ sở dữ liệu Oracle, ngôn ngữ SQL - phương tiện tương tác cơ bản với máy chủ cơ sở dữ liệu và phần mở rộng thủ tục PL/SQL của nó - đều được xem xét. Có cơ hội trau dồi kiến ​​thức chuyên sâu về sử dụng SQL làm việc với cơ sở dữ liệu lớn dữ liệu. Đặc biệt chú ý tập trung vào các công nghệ của Oracle nhằm đảm bảo tính bảo mật và toàn vẹn dữ liệu trong điều kiện truy cập của nhiều người dùng. Cuốn sách này cũng mô tả các công cụ được thiết kế để tạo ứng dụng bằng ngôn ngữ Java. Cuốn sách hướng tới đối tượng sinh viên, chuyên gia trẻ và tất cả những ai muốn làm quen với Oracle - một hệ quản trị cơ sở dữ liệu phân tán để xử lý dữ liệu hiệu quả.

ABC của Oracle

Lời nói đầu cho lần xuất bản thứ hai

Sự nhìn nhận

Mục 1. Kiến trúc hệ thống xử lý dữ liệu phân tán

Công cụ xử lý dữ liệu: sự phát triển của ý tưởng và hệ thống

Sự tiến hóa cơ sở dữ liệu quan hệ trong bối cảnh lịch sử của Oracle

Oracle 8 . Các tính năng chính

Kiến trúc xử lý dữ liệu

Địa phương mạng máy tính như một phương tiện truyền dữ liệu

Mô hình tham chiếu kết nối hệ thống mở

Các thành phần hệ thống phân phối và EMVOS

Cấu hình mạng Thành phần Oracle

Kiến trúc máy chủ Oracle

Sử dụng Bàn làm việc SQL*Plus

Thông tin về kết quả hoạt động

Hỗ trợ đa ngôn ngữ trong Oracle

Các quy ước được thông qua để mô tả các lệnh

Phần 2. SQL - Ngôn ngữ xử lý dữ liệu của Oracle

Đối tượng cốt lõi của Oracle

Công cụ thao tác dữ liệu SQL

Cấu trúc yêu cầu

Những truy vấn đơn giản nhất

Xây dựng tiêu chí lựa chọn,

Công cụ cơ bản xác định tiêu chí lựa chọn

Ngôn ngữ mô tả dữ liệu Oracle

Các kiểu dữ liệu của Oracle

Chuỗi ký tự

Các loại số

ROWID

Chuỗi bit

ngày và giờ

LOB

Những cái bàn. Đại diện. Người dùng

Tạo và xóa bảng trong Oracle

Phương tiện để xác định và hủy bỏ quan điểm

Công cụ đăng ký và loại trừ người dùng

Thao tác chèn hàng

Thao tác xóa hàng

Thao tác sửa đổi chuỗi

Vị từ đặc biệt của SQL

Vị ngữ IN

Vị ngữ GIỮA

vị từ THÍCH

Vị ngữ LÀ NULL

Vị ngữ Tồn tại

Vị từ có định lượng ALL, ANY và SOME

Các phép toán lý thuyết tập hợp

Tham gia bên ngoài

Sắp xếp

Hệ thống phân cấp

Chức năng nhóm và tổng hợp

Cú pháp ngôn ngữ truy vấn

Kết nối với căn cứ xa xôi dữ liệu. Ảnh chụp nhanh dữ liệu

Tạo liên kết đến cơ sở dữ liệu Oracle từ xa

Công cụ nhận dạng và hủy hình ảnh

Trình tự. từ đồng nghĩa

Tạo trình tự

Tạo từ đồng nghĩa trong Oracle

Làm việc với không gian bảng trong Oracle

Phần 3. PL/SQL - phần mở rộng thủ tục của ngôn ngữ SQL

Cấu trúc chương trình PL/SQL

Biến, hằng và kiểu

Kiểm soát thực hiện chương trình

Nhà điều hành chi nhánh

Câu lệnh vòng lặp

Tuyên bố GOTO

Con trỏ

Xử lý ngoại lệ

Thủ tục, chức năng và gói

Các hàm SQL của Oracle

Các hàm khớp với mã số và ký hiệu

Hàm chuyển đổi ký tự chuỗi con

Chức năng cắt và đệm chuỗi ký tự

Hàm chuyển đổi chuỗi ký tự

Các hàm liên quan đến trích xuất chuỗi con

Các hàm số liên quan đến lũy thừa và logarit

Hàm lượng giác

Các hàm số liên quan đến làm tròn

Các hàm số liên quan đến dấu của một số

Các hàm số liên quan đến số học mô-đun

Hàm ngày

Hàm chuyển đổi kiểu dữ liệu

Hàm thay thế đối số

Chức năng trợ giúp

Tạo các thủ tục và chức năng tùy chỉnh

Gói

Trình kích hoạt cơ sở dữ liệu

Gói tiêu chuẩn Lời tiên tri

SQL động

Tệp vào/ra

Quản lý công việc

Quản lý LOB

Kiểm soát truy cập nhiều người dùng

Sử dụng các hàm PL/SQL trong biểu thức SQL

Phần 4. Công cụ kiểm soát truy cập trong Oracle

Phân tích cơ sở hạ tầng hỗ trợ

Nhận dạng người dùng

Khái niệm cơ bản về hệ thống phân biệt đặc quyền truy cập

Cấp đặc quyền hệ thống

Đặc quyền hệ thống xác định quyền làm việc với bảng và dạng xem

Đặc quyền hệ thống xác định quyền làm việc với các thủ tục và trình kích hoạt

Đặc quyền hệ thống xác định quyền làm việc với người dùng

Đặc quyền hệ thống xác định quyền làm việc với các vùng bảng

Đặc quyền hệ thống xác định quyền làm việc với trình tự

Đặc quyền hệ thống xác định quyền làm việc với từ đồng nghĩa

Đặc quyền hệ thống xác định quyền thực thi hành động toàn cầu trong hệ thống

Đặc quyền hệ thống xác định quyền thực hiện hành động với các đối tượng cơ sở dữ liệu khác

Sử dụng cấu trúc PUBLIC và WITH ADMIN OPTION

Cấp đặc quyền truy cập đối tượng

Quản lý đặc quyền sử dụng vai trò

Đặc quyền hệ thống xác định quyền làm việc với các vai trò

Vai trò được xác định trước trong Oracle

Tạo vai trò và cấp đặc quyền cho họ

Quản lý tính đủ điều kiện của vai trò

Thu hồi đặc quyền

Thu hồi các đặc quyền và vai trò của hệ thống

Thu hồi đặc quyền truy cập đối tượng

Sử dụng chế độ xem để kiểm soát quyền truy cập

Các thủ tục được lưu trữ như một phương tiện kiểm soát truy cập

Sử dụng trình kích hoạt để cải thiện bảo mật hệ thống

Công cụ kiểm tra

Kiểm tra các sự kiện hệ thống

Kiểm tra các sự kiện liên quan đến quyền truy cập đối tượng

Dừng ghi nhật ký sự kiện

Kiểm tra xử lý dữ liệu

Hồ sơ người dùng như một phương tiện tăng cường bảo mật hệ thống

thông tin thêm

Phần 5: Tạo ứng dụng Java

Công cụ xây dựng ứng dụng và tổ chức truy cập cơ sở dữ liệu

Tạo ứng dụng trong Java

Ứng dụng đơn giản nhất trong Java

Applet đơn giản nhất

Thực thi các câu lệnh SQL để tạo bảng, nhập và sửa đổi dữ liệu

Lấy mẫu đơn giản dữ liệu

Truy vấn tham số

Các thủ tục lưu trữ trong Java

Phần 6: Công cụ toàn vẹn dữ liệu

Định nghĩa giao dịch và vai trò của nó trong DBMS

Bắt đầu và kết thúc một giao dịch

Câu lệnh SQL kiểm soát các giao dịch

Điều khoản CAM KẾT CÔNG VIỆC

Sử dụng mệnh đề SAVEPOINT

Ưu đãi ROLLBACK WORK

Tính nhất quán và xử lý song song

Các loại ổ khóa

Xuất/nhập dữ liệu

Phần 7: Kỹ thuật nâng cao năng suất

Trình tối ưu hóa

Xếp hạng phương thức truy cập

Phân tích các truy vấn để cải thiện tốc độ thực thi của chúng

Cài đặt chế độ tối ưu hóa

Tổng quan về chỉ số Oracle

Mã hóa biểu thức SQL hiệu quả

Thay đổi kế hoạch thực hiện truy vấn

Bảng phân vùng

Chỉ mục phân vùng

Các thao tác với các phần

Bảng chỉ mục

Phần 8. Mở rộng đối tượng trong OracleS

Các loại đối tượng

Các đối tượng trong cơ sở dữ liệu

Mảng

Bảng lồng nhau

Thông số truy cập

Chế độ xem đối tượng

Oracle 9i

Phần kết luận

Văn học