Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn tỷ lệ kèo bóng đá tối nay cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

13.3. Lượt xem và hệ thống tỷ lệ kèo bóng đá tối nay

13.3.1. Thực hiện các quan điểm trongPostgreSQL

chế độ tỷ lệ kèo bóng đá tối nay trongPostgreSQLlà được thực hiện bằng cách sử dụng hệ thống tỷ lệ kèo bóng đá tối nay. Trong thực tế về cơ bản có Không có sự khác biệt giữa

Tạo tỷ lệ kèo bóng đá tối nay myView là chọn * từ mytab;

so với hai lệnh

Tạo bảng MyView (cùng một danh sách thuộc tính với MyTab);
Tạo tỷ lệ kèo bóng đá tối nay "_return" như trên chọn vào myView do thay thế
    Chọn * từ mytab;

Bởi vì đây chính xác là những gì lệnh creat View thực hiện trong nội bộ. Điều này có một số tác dụng phụ. Một trong số đó là thông tin về chế độ tỷ lệ kèo bóng đá tối nay trongPostgreSQLDanh mục hệ tỷ lệ kèo bóng đá tối nay chính xác là Giống như nó là cho một bảng. Vì vậy, đối với trình phân tích cú pháp truy vấn, có Hoàn toàn không có sự khác biệt giữa một bảng và một cái nhìn. Họ là Điều tương tự - quan hệ. Đó là cái quan trọng đối với Hiện nay.

13.3.2. Làm sao Chọn tỷ lệ kèo bóng đá tối nay hoạt động

tỷ lệ kèo bóng đá tối nay chọn được áp dụng cho tất cả các truy vấn làm bước cuối cùng, Ngay cả khi lệnh được đưa ra là một chèn, cập nhật hoặc xóa. Và Họ có các ngữ nghĩa khác với những người khác ở chỗ họ Sửa đổi cây Parse tại chỗ thay vì tạo một cây mới. Vì vậy, chọn các tỷ lệ kèo bóng đá tối nay được mô tả đầu tiên.

Hiện tại, chỉ có thể có một hành động trong một lần chọn tỷ lệ kèo bóng đá tối nay, và nó phải là một hành động chọn vô điều kiện đó là THAY VÌ. Hạn chế này được yêu cầu để làm cho các tỷ lệ kèo bóng đá tối nay an toàn đủ để mở chúng cho người dùng thông thường và nó hạn chế các tỷ lệ kèo bóng đá tối nay Trên chọn tỷ lệ kèo bóng đá tối nay xem thực.

Ví dụ cho tài liệu này là hai lượt xem tham gia Một số tính toán và một số quan điểm khác sử dụng chúng lần lượt. Một của hai chế độ xem đầu tiên được tùy chỉnh sau đó bằng cách thêm các tỷ lệ kèo bóng đá tối nay cho Chèn, cập nhật và xóa các hoạt động để kết quả cuối cùng sẽ là một quan điểm hoạt động như một cái bàn thực sự với một số phép thuật chức năng. Nó không phải là một ví dụ đơn giản để bắt đầu Và điều này làm cho mọi thứ khó khăn hơn để vào. Nhưng tốt hơn là có một ví dụ bao gồm tất cả các điểm được thảo luận bởi bước thay vì có nhiều cái khác nhau có thể trộn lẫn trong tâm trí.

Cơ sở dữ liệu cần chơi với các ví dụ được đặt tênAL_BUNDY. Bạn sẽ sớm thấy tại sao điều này là Tên cơ sở dữ liệu. Và nó cần ngôn ngữ thủ tụcPL/PGSQLĐã cài đặt, vì chúng tôi Cần một hàm nhỏ () hàm trả về mức thấp hơn của 2 số nguyên giá trị. Chúng tôi tạo ra nó như

Tạo hàm tối thiểu (số nguyên, số nguyên) trả về số nguyên là '
    BẮT ĐẦU
        Nếu $ 1 <$ 2 thì
            Trả lại $ 1;
        Kết thúc nếu;
        Trả lại $ 2;
    KẾT THÚC;
'Ngôn ngữ plpgsql;

Các bảng thực sự chúng ta cần trong hai hệ thống tỷ lệ kèo bóng đá tối nay đầu tiên Mô tả là:

Tạo bảng giày_data (
    Shoename char (10), - khóa chính
    Số nguyên sh_avail, - Có sẵn # các cặp
    Slcolor Char (10), - Màu Shoelace ưa thích
    Slminlen Float, - Miminum Shoelace Chiều dài
    Phao SLMAXLEN, - chiều dài dây giày tối đa
    Slunit Char (8) - Đơn vị chiều dài
);

Tạo bảng Shoelace_Data (
    sl_name char (10), - khóa chính
    Số nguyên SL_AVAIL, - Có sẵn # các cặp
    SL_Color Char (10), - Màu Shoelace
    sl_len float, - chiều dài dây giày
    SL_Unit Char (8) - Đơn vị chiều dài
);

Tạo đơn vị bảng (
    un_name char (8), - khóa chính
    un_fact float - yếu tố chuyển đổi thành cm
);

Tôi nghĩ rằng hầu hết chúng ta mang giày và có thể nhận ra rằng đây là Dữ liệu thực sự hữu ích. Vâng, có những đôi giày trên thế giới không yêu cầu dây giày, nhưng điều này không làm cho cuộc sống của Al dễ dàng hơn và vì vậy chúng tôi bỏ qua nó.

Các chế độ tỷ lệ kèo bóng đá tối nay được tạo là

Tạo giày tỷ lệ kèo bóng đá tối nay AS
    Chọn Sh.Shoename,
           sh.sh_avail,
           sh.slcolor,
           sh.slminlen,
           sh.slminlen * un.un_fact dưới dạng slminlen_cm,
           sh.slmaxlen,
           sh.slmaxlen * un.un_fact dưới dạng slmaxlen_cm,
           Sh.Slunit
      Từ giày_data sh, unit un
     Trong đó sh.slunit = un.un_name;

Tạo Chế độ tỷ lệ kèo bóng đá tối nay Shoelace như
    Chọn S.SL_NAME,
           s.sl_avail,
           s.sl_color,
           s.sl_len,
           s.sl_unit,
           S.SL_LEN * U.UN_FACT AS SL_LEN_CM
      Từ shoelace_data s, đơn vị u
     Trong đó s.sl_unit = u.un_name;

Tạo tỷ lệ kèo bóng đá tối nay giày_ready AS
    Chọn rsh.shoename,
           rsh.sh_avail,
           rsl.sl_name,
           rsl.sl_avail,
           tối thiểu (rsh.sh_avail, rsl.sl_avail) dưới dạng TOTAL_AVAIL
      Từ RSH giày, dây giày RSL
     WHERE RSL.SL_COLOR = RSH.SLCOLOR
       Và rsl.sl_len_cm = rsh.slminlen_cm
       Và rsl.sl_len_cm <= rsh.slmaxlen_cm;

Lệnh tạo Chế độ tỷ lệ kèo bóng đá tối nay choShoelacetỷ lệ kèo bóng đá tối nay (đó là đơn giản nhất chúng tôi có) sẽ tạo một dây giày quan hệ và một mục nhập trongPG_REWRITEcho biết rằng có một Viết lại tỷ lệ kèo bóng đá tối nay phải được áp dụng bất cứ khi nào mối quan hệ Shoelace được tham chiếu trong bảng phạm vi của một truy vấn. Các tỷ lệ kèo bóng đá tối nay có Không có trình độ tỷ lệ kèo bóng đá tối nay (thảo luận sau, với không chọn các tỷ lệ kèo bóng đá tối nay, vì các tỷ lệ kèo bóng đá tối nay chọn hiện tại không thể có chúng) và nó là THAY VÌ. Lưu ý rằng trình độ tỷ lệ kèo bóng đá tối nay không giống như Trình độ truy vấn! Hành động của tỷ lệ kèo bóng đá tối nay có một truy vấn trình độ chuyên môn.

Hành động của tỷ lệ kèo bóng đá tối nay là một cây truy vấn là bản sao của Chọn câu lệnh trong lệnh tạo xem.

Lưu ý:Hai mục bảng khác cho mới và cũ (được đặt tên * mới * và * hiện tại * vì lý do lịch sử trong cây truy vấn in) bạn có thể thấy trongPG_REWRITEmục nhập không quan tâm Chọn tỷ lệ kèo bóng đá tối nay.

Bây giờ chúng tôi dân cưĐơn vị, giày_dataShoelace_datavà AL loại chọn đầu tiên trong Cuộc sống của anh ấy:

al_bundy = chèn tỷ lệ kèo bóng đá tối nayo các giá trị đơn vị ('cm', 1.0);
al_bundy = chèn tỷ lệ kèo bóng đá tối nayo các giá trị đơn vị ('m', 100.0);
al_bundy = chèn tỷ lệ kèo bóng đá tối nayo các giá trị đơn vị ('inch', 2.54);
al_bundy = 
Al_bundy = Chèn tỷ lệ kèo bóng đá tối nayo giá trị giày_data 
al_bundy- ('sh1', 2, 'đen', 70.0, 90.0, 'cm');
Al_bundy = Chèn tỷ lệ kèo bóng đá tối nayo giá trị giày_data 
al_bundy- ('sh2', 0, 'đen', 30.0, 40.0, 'inch');
Al_bundy = Chèn tỷ lệ kèo bóng đá tối nayo giá trị giày_data 
al_bundy- ('sh3', 4, 'brown', 50.0, 65.0, 'cm');
Al_bundy = Chèn tỷ lệ kèo bóng đá tối nayo giá trị giày_data 
al_bundy- ('sh4', 3, 'brown', 40.0, 50.0, 'inch');
al_bundy = 
Al_Bundy = Chèn tỷ lệ kèo bóng đá tối nayo giá trị Shoelace_Data 
al_bundy- ('sl1', 5, 'đen', 80.0, 'cm');
Al_Bundy = Chèn tỷ lệ kèo bóng đá tối nayo giá trị Shoelace_Data 
al_bundy- ('sl2', 6, 'đen', 100.0, 'cm');
Al_Bundy = Chèn tỷ lệ kèo bóng đá tối nayo giá trị Shoelace_Data 
al_bundy- ('sl3', 0, 'đen', 35.0, 'inch');
Al_Bundy = Chèn tỷ lệ kèo bóng đá tối nayo giá trị Shoelace_Data 
al_bundy- ('SL4', 8, 'đen', 40.0, 'inch');
Al_Bundy = Chèn tỷ lệ kèo bóng đá tối nayo giá trị Shoelace_Data 
al_bundy- ('SL5', 4, 'Brown', 1.0, 'M');
Al_Bundy = Chèn tỷ lệ kèo bóng đá tối nayo giá trị Shoelace_Data 
al_bundy- ('sl6', 0, 'brown', 0,9, 'm');
Al_Bundy = Chèn tỷ lệ kèo bóng đá tối nayo giá trị Shoelace_Data 
Al_bundy- ('SL7', 7, 'Brown', 60, 'CM');
Al_Bundy = Chèn tỷ lệ kèo bóng đá tối nayo giá trị Shoelace_Data 
Al_bundy- ('SL8', 1, 'Brown', 40, 'inch');
al_bundy = 
al_bundy = Chọn * từ Shoelace;
SL_NAME | SL_AVAIL | SL_COLOR | SL_LEN | SL_UNIT | SL_LEN_CM
----------+--------+----------+------+--------+---------
SL1 |       5 | Đen |    80 | cm |       80
SL2 |       6 | Đen |   100 | cm |      100
SL7 |       7 | Brown |    60 | cm |       60
SL3 |       0 | Đen |    35 | inch |     88.9
SL4 |       8 | Đen |    40 | inch |    101.6
SL8 |       1 | Brown |    40 | inch |    101.6
SL5 |       4 | Brown |     1 | m |      100
SL6 |       0 | Brown |   0,9 | m |       90
(8 hàng)

Đó là lựa chọn đơn giản nhất có thể làm theo quan điểm của chúng tôi, vì vậy chúng tôi lấy Điều này để giải thích những điều cơ bản của các tỷ lệ kèo bóng đá tối nay xem. TheChọn * từ Shoelaceđã được giải thích bởi trình phân tích cú pháp và sản xuất cây phân tích

Chọn Shoelace.SL_Name, Shoelace.SL_AVAIL,
       Shoelace.SL_Color, Shoelace.SL_LEN,
       Shoelace.SL_Unit, Shoelace.SL_LEN_CM
  Từ dây giày Shoelace;

Và điều này được đưa ra cho hệ thống tỷ lệ kèo bóng đá tối nay. Hệ thống tỷ lệ kèo bóng đá tối nay đi bộ thông qua bảng phạm vi và kiểm tra xem có tỷ lệ kèo bóng đá tối nay trongPG_REWRITEcho bất kỳ mối quan hệ nào. Khi Xử lý mục nhập bảng phạm vi choShoelace(người duy nhất cho đến bây giờ) nó tìm thấy_returntỷ lệ kèo bóng đá tối nay với cây phân tích

Chọn S.SL_NAME, S.SL_AVAIL,
       s.sl_color, s.sl_len, s.sl_unit,
       float8mul (s.sl_len, u.un_fact) là SL_LEN_CM
  Từ Shoelace *cũ *, Shoelace *Mới *,
       shoelace_data s, đơn vị u
 WHERE bpchareq (s.sl_unit, u.un_name);

Lưu ý rằng trình phân tích cú pháp đã thay đổi tính toán và Trình độ chuyên môn tỷ lệ kèo bóng đá tối nayo các cuộc gọi đến các chức năng thích hợp. Nhưng tỷ lệ kèo bóng đá tối nayo thực tế điều này không thay đổi gì.

Để mở rộng chế độ xem, người viết lại chỉ cần tạo một phần phụ Mục nhập bảng phạm vi chứa cây phân tích hành động của tỷ lệ kèo bóng đá tối nay và thay thế mục nhập bảng phạm vi này cho cái ban đầu tham chiếu quan điểm. Kết quả viết lại cây phân tích được viết lại là gần như giống như khi al đã gõ

Chọn Shoelace.SL_NAME, SHOELACE.SL_AVAIL,
       Shoelace.SL_Color, Shoelace.SL_LEN,
       Shoelace.SL_Unit, Shoelace.SL_LEN_CM
  Từ (chọn s.sl_name,
               s.sl_avail,
               s.sl_color,
               s.sl_len,
               s.sl_unit,
               S.SL_LEN * U.UN_FACT AS SL_LEN_CM
          Từ shoelace_data s, đơn vị u
         Trong đó s.sl_unit = U.un_name) Shoelace;

Tuy nhiên Có hai mục bổ sung Shoelace *cũ *, Shoelace *Mới *. Những cái này các mục không tham gia trực tiếp vào truy vấn, vì chúng không được tham chiếu bởi cây tham gia hoặc danh sách mục tiêu của phụ. Người viết lại sử dụng chúng để lưu trữ kiểm tra tỷ lệ kèo bóng đá tối nayền truy cập thông tin ban đầu có mặt trong mục nhập bảng phạm vi tham chiếu quan điểm. Theo cách này, người thực thi vẫn sẽ kiểm tra rằng người dùng có tỷ lệ kèo bóng đá tối nayền thích hợp để truy cập chế độ xem, thậm chí mặc dù không có cách sử dụng trực tiếp chế độ xem trong bản viết lại Truy vấn.

Đó là tỷ lệ kèo bóng đá tối nay đầu tiên được áp dụng. Hệ thống tỷ lệ kèo bóng đá tối nay sẽ Tiếp tục kiểm tra các mục bảng phạm vi còn lại ở trên cùng truy vấn (trong ví dụ này không còn Kiểm tra đệ quy các mục nhập bảng trong phạm vi được thêm vào Trận đấu phụ để xem nếu có bất kỳ quan điểm tham khảo nào. (Nhưng nó sẽ không Mở rộng * cũ * hoặc * mới * --- nếu không chúng ta sẽ có vô hạn đệ quy!) Trong ví dụ này, không có tỷ lệ kèo bóng đá tối nay viết lại cho shoelace_data hoặc đơn vị, vì vậy việc viết lại đã hoàn tất và là kết quả cuối cùng được đưa ra cho người lập kế hoạch.

Bây giờ chúng ta phải đối mặt với vấn đề anh em blues xuất hiện trong cửa hàng của anh ấy và muốn mua một số đôi giày mới, và như Blues Brothers, họ muốn mang cùng một đôi giày. Và họ muốn mặc chúng ngay lập tức, vì vậy chúng cũng cần dây giày.

Al cần biết những đôi giày nào hiện có trong cửa hàng anh ấy có dây giày phù hợp (màu sắc và kích thước) và trong đó tổng số Số lượng các cặp khớp chính xác lớn hơn hoặc bằng hai. Chúng tôi Dạy anh ấy phải làm gì và anh ấy hỏi cơ sở dữ liệu của mình:

23020_23306

AL là một chuyên gia giày và vì vậy anh ta biết rằng chỉ những đôi giày thuộc loại SH1 sẽ phù hợp (Shoelace SL7 có màu nâu và giày cần màu nâu Shoelaces không phải giày mà anh em blues sẽ đi).

Đầu ra của trình phân tích cú pháp lần này là cây phân tích

23609_23810

tỷ lệ kèo bóng đá tối nay đầu tiên được áp dụng sẽ là cái choShoe_Readytỷ lệ kèo bóng đá tối nay và nó dẫn đến phân tích cú pháp cây

23990_24533

Tương tự, các tỷ lệ kèo bóng đá tối nay chogiàyShoelaceđược thay thế tỷ lệ kèo bóng đá tối nayo Bảng phạm vi của trình tự phụ, dẫn đến trận chung kết ba cấp Cây truy vấn:

24787_26054

Hóa ra người lập kế hoạch sẽ thu gọn cây này thành a Cây truy vấn hai cấp: Các lựa chọn Bottomst sẽ là"Kéo lên"tỷ lệ kèo bóng đá tối nayo giữa chọn vì không cần phải xử lý chúng một cách riêng biệt. Nhưng Chọn giữa sẽ vẫn tách biệt với đầu, bởi vì nó Chứa các chức năng tổng hợp. Nếu chúng ta kéo chúng lên thì nó sẽ Thay đổi hành vi của lựa chọn trên cùng, mà chúng ta không muốn. Tuy nhiên, việc thu gọn cây truy vấn là một tối ưu hóa mà viết lại hệ thống không phải quan tâm đến chính nó.

Lưu ý:Hiện tại không có việc dừng đệ quy cơ chế cho các tỷ lệ kèo bóng đá tối nay xem trong hệ thống tỷ lệ kèo bóng đá tối nay (chỉ dành cho Các loại tỷ lệ kèo bóng đá tối nay khác). Điều này không bị tổn thương nhiều, bởi vì cách duy nhất để đẩy nó vào một vòng lặp vô tận (thổi bay phụ trợ cho đến khi nó đạt đến giới hạn bộ nhớ) là tạo các bảng và sau đó thiết lập các tỷ lệ kèo bóng đá tối nay xem bằng tay với Tạo tỷ lệ kèo bóng đá tối nay theo cách như vậy, người ta chọn từ cái kia chọn từ một. Điều này không bao giờ có thể xảy ra nếu tạo ra Xem được sử dụng vì đối với chế độ xem đầu tiên, thứ hai quan hệ không tồn tại và do đó, quan điểm đầu tiên không thể Chọn từ thứ hai.

13.3.3. Xem Các tỷ lệ kèo bóng đá tối nay trong các câu lệnh không chọn

Hai chi tiết của cây phân tích không được chạm vào Mô tả các tỷ lệ kèo bóng đá tối nay xem ở trên. Đây là loại lệnh và mối quan hệ kết quả. Trên thực tế, xem các tỷ lệ kèo bóng đá tối nay không cần điều này thông tin.

Chỉ có một tỷ lệ kèo bóng đá tối nayi sự khác biệt giữa một cây phân tích cho một Chọn và một cho bất kỳ lệnh nào khác. Rõ ràng là họ có Một loại lệnh khác và lần này là các điểm quan hệ kết quả đến mục bảng phạm vi nơi kết quả nên đi. Mọi thứ khác là hoàn toàn giống nhau. Vì vậy, có hai bảng T1 và T2 với các thuộc tính A và B, các cây phân tích cho hai câu lệnh

Chọn T2.b từ T1, T2 trong đó t1.a = T2.a;

CẬP NHẬT T1 Đặt B = T2.b trong đó T1.A = T2.a;

gần giống nhau.

  • Các bảng phạm vi chứa các mục cho các bảng T1 và T2.

  • Danh sách mục tiêu chứa một biến chỉ ra thuộc tính B của mục nhập bảng phạm vi cho bảng T2.

  • Biểu thức đủ điều kiện so sánh các thuộc tính a của cả hai phạm vi cho sự bình đẳng.

  • Cây tham gia hiển thị sự kết hợp đơn giản giữa T1 và T2.

Hậu quả là, cả hai cây phân tích đều dẫn đến tương tự kế hoạch thực hiện. Cả hai đều tham gia trên hai bảng. Vì Bản cập nhật các cột bị thiếu từ T1 được thêm tỷ lệ kèo bóng đá tối nayo mục tiêu Liệt kê bởi người lập kế hoạch và cây phân tích cú pháp cuối cùng sẽ được đọc là

Cập nhật T1 Đặt A = T1.A, B = T2.B trong đó T1.A = T2.A;

Và do đó, người thực thi chạy qua tham gia sẽ tạo ra chính xác Kết quả tương tự được đặt làm

Chọn T1.A, T2.b từ T1, T2 trong đó T1.A = T2.A;

Sẽ làm. Nhưng có một vấn đề nhỏ trong cập nhật. Các Người thực thi không quan tâm kết quả từ sự tham gia là gì Làm là có nghĩa là cho. Nó chỉ tạo ra một tập hợp kết quả của các hàng. Các sự khác biệt mà một là một lệnh chọn và cái kia là Cập nhật được xử lý trong người gọi của người thực thi. Người gọi Vẫn biết (nhìn tỷ lệ kèo bóng đá tối nayo cây phân tích) rằng đây là một bản cập nhật, Và anh ta biết rằng kết quả này nên đi tỷ lệ kèo bóng đá tối nayo Bảng T1. Nhưng Những hàng nào phải được thay thế bằng mới hàng ngang?

Để giải tỷ lệ kèo bóng đá tối nayết vấn đề này, một mục nhập khác được thêm vào Danh sách mục tiêu trong bản cập nhật (và cả trong xóa) ID hiện tại (CTID). Đây là thuộc tính hệ tỷ lệ kèo bóng đá tối nay chứa số khối tệp và Vị trí trong khối cho hàng. Biết bảng,CTIDcó thể được sử dụng để truy xuất Hàng T1 ban đầu sẽ được cập nhật. Sau khi thêmCTIDđến danh sách đích, Truy vấn thực sự trông giống như

Chọn T1.A, T2.B, T1.CTID từ T1, T2 trong đó T1.A = T2.A;

Bây giờ là một chi tiết khác củaPostgreSQLBước tỷ lệ kèo bóng đá tối nayo giai đoạn. Tại này Khoảnh khắc, các hàng bảng không được ghi đè và đây là lý do tại sao phá thai Giao dịch là nhanh chóng. Trong một bản cập nhật, hàng kết quả mới là được chèn tỷ lệ kèo bóng đá tối nayo bảng (sau khi tướcCTID) và trong tiêu đề Tuple của hàng cái đóCTIDchỉ tỷ lệ kèo bóng đá tối nayoCMAXxmaxMục được đặt thành bộ đếm lệnh hiện tại và dòng điện ID giao dịch. Do đó hàng cũ được ẩn và sau Giao dịch cam kết máy hút bụi thực sự có thể di chuyển nó ngoài.

Biết tất cả những điều đó, chúng ta chỉ có thể áp dụng các tỷ lệ kèo bóng đá tối nay xem trong Hoàn toàn giống nhau với bất kỳ lệnh nào. Không có sự khác biệt.

13.3.4. Các Sức mạnh của chế độ tỷ lệ kèo bóng đá tối nay trongPostgreSQL

Trên đây cho thấy cách hệ thống tỷ lệ kèo bóng đá tối nay kết hợp chế độ xem Định nghĩa vào cây phân tích ban đầu. Trong ví dụ thứ hai một lựa chọn đơn giản từ một chế độ xem đã tạo ra một cây phân tích cuối cùng là sự tham gia của 4 bảng (đơn vị được sử dụng hai lần với khác nhau tên).

13.3.4.1. Những lợi ích

Lợi ích của việc thực hiện các quan điểm với hệ thống tỷ lệ kèo bóng đá tối nay là, rằng người lập kế hoạch có tất cả thông tin về bảng nào phải được quét cộng với các mối quan hệ giữa những điều này Bảng cộng với trình độ hạn chế từ các chế độ xem cộng với trình độ từ truy vấn ban đầu trong một Cây phân tích. Và đây vẫn là tình huống khi bản gốc Truy vấn đã là một quan điểm tham gia. Bây giờ người lập kế hoạch phải Quyết định đó là con đường tốt nhất để thực hiện truy vấn. Càng nhiều Thông tin mà người lập kế hoạch có, quyết định này càng tốt. Và hệ thống tỷ lệ kèo bóng đá tối nay như được thực hiện trongPostgreSQLĐảm bảo rằng đây là tất cả thông tin có sẵn về truy vấn cho đến nay.

13.3.5. Những gì về việc cập nhật một tỷ lệ kèo bóng đá tối nay?

Điều gì xảy ra nếu chế độ tỷ lệ kèo bóng đá tối nay được đặt tên là mối quan hệ đích cho Một chèn, cập nhật hoặc xóa? Sau khi thực hiện các thay thế được mô tả ở trên, chúng tôi sẽ có một cây truy vấn trong đó kết quả Điểm quan hệ tại một mục bảng phạm vi phụ. Điều này sẽ không hoạt động, vì vậy người viết lại đã đưa ra lỗi nếu nó thấy nó có sản xuất một thứ như vậy.

Để thay đổi điều này, chúng ta có thể xác định các tỷ lệ kèo bóng đá tối nay sửa đổi hành vi của các truy vấn không chọn. Đây là chủ đề của tiếp theo phần.