рд╡реИрдХрд▓реНрдкрд┐рдХ рдУрд░реЗрдХрд▓ рдореЗрдВ рдХрдИ-рд╕реЗ-рдХрдИ рд╕рдВрдмрдВрдз рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рдиреЗрд╕реНрдЯреЗрдб рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ, рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЪрд╛рдЗрд▓реНрдб рдЯреЗрдмрд▓ ( NESTED TABLE



) рджреЛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдХрд╛рдлреА рд╕рдВрджреЗрд╣рд╛рд╕реНрдкрдж рд╣реИ: рдкреНрд░рдХрд╛рд░ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЖрдк рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА ( FOREIGN KEY



) рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдФрд░ рдХрд┐рд╕реА рдХреЛ рдиреЗрд╕реНрдЯреЗрдб рдЯреЗрдмрд▓ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдлрд╛рдпрджреЗ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐ рдореБрдЦреНрдп рдЯреЗрдмрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдиреЗрд╕реНрдЯреЗрдб рдЯреЗрдмрд▓ рдХрд╛ рдХреЙрд▓рдо рдЕрдм рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рджреВрд╕рд░рд╛ рдкреНрд░рдХрд╛рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХреА рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рд╣реИ рдФрд░ рдирд┐рд╕реНрд╕рдВрджреЗрд╣, рдореМрдЬреВрджрд╛ рдбреЗрдЯрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЪрд┐рдВрддрд╛ рд╣реИред



рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ-рд╕реЗ-рдХрдИ рд╕рдВрдмрдВрдз ( MANY-TO-MANY RELATIONSHIP



) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЗрддрдирд╛ рдЖрдХрд░реНрд╖рдХ рд╣реИ - рдПрдХ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рд╕реЗрдЯ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ - рдЬреЛ рдПрдХ рдорд╛рдирд╡реАрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЕрдзрд┐рдХ рддрд╛рд░реНрдХрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рддрд░реНрдХ? рд▓реЗрдХрд┐рди рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ - рдХреНрдпрд╛ рдореЛрдордмрддреНрддреА рдХреЗ рд▓рд╛рдпрдХ рдЦреЗрд▓ рд╣реИ?



рдЙрджрд╛рд╣рд░рдг



рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдВрд░рдЪрдирд╛ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХрд╛ рднреА рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдкрджреНрдзрддрд┐ рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХрдо рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИред



рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рд╡реИрдХреНрдпреВрдо рдореЗрдВ рдПрдХ рдмрд╕ рдмреЗрдбрд╝рд╛ рдЧреЛрд▓рд╛рдХрд╛рд░ рд╣реИред рдмрд╕ рдХреЗ рдмреЗрдбрд╝реЗ рдореЗрдВ рдХрдИ рдмрд╕реЗрдВ рдФрд░ рдХрдИ рдбреНрд░рд╛рдЗрд╡рд░ рд╣реИрдВред рдХрдИ рдбреНрд░рд╛рдЗрд╡рд░ рдПрдХ рд╣реА рдмрд╕ (рдХрдИ рдкрд╛рд░рд┐рдпреЛрдВ) рдкрд░ рд╕рд╡рд╛рд░реА рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкрд╛рд░реНрдХ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдРрд╕реА рд╣реИрдВ рдХрд┐ рдПрдХ рдЪрд╛рд▓рдХ рдХрдИ рдмрд╕реЛрдВ рдкрд░ рд╕рд╡рд╛рд░реА рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдкреНрддрд╛рд╣ рдХреЗ рджрд┐рдиред



рдЪрд▓реЛ рджреЛ рдмрд╣реБрдд рд╣реА рд╕рд╛рдзрд╛рд░рдг рдЯреЗрдмрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЗрд╡рд▓ рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдмрдирд╛рдирд╛ рд╣реИред
CREATE TABLE tab_bus

( b_id NUMBER PRIMARY KEY

, bus_number VARCHAR2(9) NOT NULL

);

CREATE SEQUENCE seq_bus;



CREATE TABLE tab_driver

( d_id NUMBER PRIMARY KEY

, driver_name VARCHAR2(255) NOT NULL

);

CREATE SEQUENCE seq_driver;




* This source code was highlighted with Source Code Highlighter .




рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рдмрд╕реЗ рдЖрдо рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рд┐рд╢реНрддреЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ: рд░рд┐рд╢реНрддреЛрдВ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВред
CREATE TABLE bus_driver

( bus_id NUMBER

, driver_id NUMBER

, CONSTRAINT pk_driver_bus PRIMARY KEY (bus_id, driver_id)

, CONSTRAINT fk_bus_id FOREIGN KEY (bus_id) REFERENCES tab_bus (b_id)

, CONSTRAINT fk_driver_id FOREIGN KEY (driver_id) REFERENCES tab_driver (d_id)

);




* This source code was highlighted with Source Code Highlighter .




рджреЛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА ( PRIMARY KEY



) рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╢рд░реНрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддреА рд╣реИ: рдлрд╝реАрд▓реНрдб рдХреА рд╕рд╛рдордЧреНрд░реА (рдкреНрд░рддреНрдпреЗрдХ рдЕрд▓рдЧ рд╕реЗ) рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдмрдВрдз рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдкрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд╖реЗрддреНрд░реЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрдиреБрдХреНрд░рдордг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред



рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕рдВрдмрдВрдз рдмрдирд╛рдиреЗ, рд╣рдЯрд╛рдиреЗ рдФрд░ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рдкрд░реАрдХреНрд╖рдг рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рдереА, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рдВрдХрд▓рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреЛрдИ рдкреНрд░рддрд┐рдмрджреНрдз ( COMMIT;



) рдирд╣реАрдВ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬрдм рдореИрдВ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдПрдХ рд▓реВрдк рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рддрд┐рдмрджреНрдз рдХреЗрд╡рд▓ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░реЗрдЧрд╛ред
CREATE PROCEDURE add_relation

( p_bus NUMBER

, p_driver NUMBER

) AS

BEGIN

INSERT INTO bus_driver VALUES ( p_bus, p_driver );

END ;



CREATE PROCEDURE drop_relation

( p_bus NUMBER

, p_driver NUMBER

) AS

BEGIN

DELETE bus_driver WHERE bus_id = p_bus AND driver_id = p_driver;

END ;



CREATE PROCEDURE select_relation

( p_data OUT SYS_REFCURSOR

) AS

BEGIN

OPEN p_data FOR

SELECT b.bus_number, d.driver_name

FROM tab_bus b, tab_driver d, bus_driver r

WHERE (b.b_id = r.bus_id) AND (r.driver_id = d.d_id);

END ;




* This source code was highlighted with Source Code Highlighter .




рдпрд╣ рд╢рд╛рдпрдж рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдЪрдпрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, WHERE



рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЗрдмрд▓ рдЬреЙрдЗрди ( JOIN



) рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рджреЛ рдХрд╛рд░рдг рд╣реИрдВ: рдУрд░реЗрдХрд▓ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд╡рд╣ рдЗрд╕реЗ JOIN



рдорд╛рдирддрд╛ рд╣реИ, рдФрд░ SQL рдХреНрд╡реЗрд░реА рдХреНрд╡реЗрд░реА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред



рдпрд╣ рдкрд╣рд▓реА рд╕рдВрдмрдВрдз рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрдмрдВрдз рдпреЛрдЬрдирд╛ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рдереА: рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдФрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд╛рд▓рд┐рдХрд╛, рдЬреЛ рд░рд┐рд╢реНрддреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИред



рдЕрдЧрд▓рд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП SQL рдХреЛрдб рдЖрддрд╛ рд╣реИред рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рдЯреЗрдмрд▓ рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рдпреЛрдЬрдирд╛ рдореЗрдВред рдФрд░ рд░рд┐рд╢реНрддреЗ рдХреА рд╕рдВрд░рдЪрдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ: рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рд░рд┐рд╢реНрддреЛрдВ рдХреА рд╕реВрдЪреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред



рдиреЗрд╕реНрдЯреЗрдб рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдПрдХ рд╕реНрддрдВрдн рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рддреБрд░рдВрдд рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдВрдмрдВрдз рддреИрдпрд╛рд░-рдирд┐рд░реНрдорд┐рдд рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
CREATE OR REPLACE TYPE obj_list AS OBJECT

( r_driver NUMBER

);

CREATE OR REPLACE TYPE nt_list AS TABLE OF obj_list;

ALTER TABLE tab_bus ADD

( bus_drivers nt_list NULL

) NESTED TABLE bus_drivers STORE AS nt_bus_drivers;




* This source code was highlighted with Source Code Highlighter .




рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдиреЗрд╕реНрдЯреЗрдб рдЯреЗрдмрд▓ рдореЗрдВ рд╡рд┐рджреЗрд╢реА рдЪрд╛рдмрд┐рдпрд╛рдВ рдирд╣реАрдВ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдкрдиреА рдмрд╛рдЗрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рд░рд┐рд╢реНрддреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреА рдЧрддрд┐ рдХреЛ рдирдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред
CREATE FUNCTION check_fk

( p_id NUMBER

) RETURN NUMBER IS

fk_count NUMBER;

BEGIN

SELECT COUNT (d_id) INTO fk_count

FROM tab_driver WHERE d_id = p_id;

RETURN fk_count;

END ;




* This source code was highlighted with Source Code Highlighter .




рдФрд░ рдЕрдВрдд рдореЗрдВ, рд░рд┐рд╢реНрддреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдмрдирд╛рдПрдВ, рд╣рдЯрд╛рдПрдВ рдФрд░ рдЪрдпрди рдХрд░реЗрдВред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЕрдкрд╡рд╛рдж рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдореВрд▓реНрдп UPDATE



рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рддреНред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреВрд░реЗ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕реЗрд▓ рдХреЛ рдмрджрд▓ рджреЗрдВред рд▓реЗрдХрд┐рди рдмрд╛рдж рдХреЗ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ INSERT



рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд╛рдирддреА рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд░рд┐рдХреЙрд░реНрдб рд╣реИ, рдФрд░ рдЕрдкрд╡рд╛рдж рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрд╣ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдХреЛрдИ рдХрдиреЗрдХреНрд╢рди рдирд╣реАрдВ рд╣реИред рдХрд┐рд╕реА рд░рд┐рд╢реНрддреЗ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рдВрдЪрдиреЗ рд╕реЗ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реА рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдиреНрдп рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрд╡рд╛рдж рдХреА рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдкрд╡рд╛рдж рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЪрд░ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдЙрд╕ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдирд╛ред
CREATE PROCEDURE add_relation

( p_bus NUMBER

, p_driver NUMBER

) AS

BEGIN

IF (check_fk(p_driver) = 1) THEN

INSERT INTO TABLE

( SELECT bus_drivers

FROM tab_bus

WHERE b_id = p_bus

)

VALUES ( obj_list(p_driver) );

ELSE

RAISE_APPLICATION_ERROR(-20665, 'Record doesn' 't exist.' );

END IF ;

DBMS_OUTPUT.PUT_LINE( TO_CHAR( (DBMS_UTILITY.GET_TIME-start_time)/100, '09.99' ) );

EXCEPTION

WHEN OTHERS THEN

UPDATE tab_bus

SET bus_drivers = nt_list ( obj_list(p_driver) )

WHERE b_id = p_bus;

END add_relation;



CREATE PROCEDURE drop_relation

( p_bus NUMBER

, p_driver NUMBER

) AS

BEGIN

IF (check_fk(p_driver) = 1) THEN

DELETE TABLE

( SELECT bus_drivers

FROM tab_bus d

WHERE d.b_id = p_bus

) nt

WHERE nt.r_driver = p_bus;

END IF ;

EXCEPTION

WHEN OTHERS THEN

NULL ;

END drop_relation;



CREATE PROCEDURE select_relation

( p_data OUT SYS_REFCURSOR

) AS

BEGIN

OPEN p_data FOR

SELECT b.bus_number, d.driver_name

FROM tab_bus b, tab_driver d, TABLE (b.bus_drivers) r

WHERE (b.b_id = p_bus) AND (d.d_id = p_driver);

END ;




* This source code was highlighted with Source Code Highlighter .




рд╣рдЯрд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ рднреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рддрд╛рд▓рд┐рдХрд╛ рдЦрд╛рд▓реА рд╣реЛрддреА рд╣реИред рдЕрдкрд╡рд╛рдж рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЬрд┐рд╕ рд░рд┐рдХреЙрд░реНрдб рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдЕрдм рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдЬреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдорд╛рди рдкрд░реАрдХреНрд╖рдг рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
INSERT INTO tab_driver VALUES ( seq_driver.NEXTVAL, 'Viktor Jeliseev' );

INSERT INTO tab_driver VALUES ( seq_driver.NEXTVAL, 'Stepan Kljavin' );

INSERT INTO tab_driver VALUES ( seq_driver.NEXTVAL, 'Marija Baranka' );

INSERT INTO tab_driver VALUES ( seq_driver.NEXTVAL, 'Arsenij Dubov' );

INSERT INTO tab_bus VALUES ( seq_bus.NEXTVAL, 'p666pp' );

INSERT INTO tab_bus VALUES ( seq_bus.NEXTVAL, 'LT-3216' );

INSERT INTO tab_bus VALUES ( seq_bus.NEXTVAL, 'zox-15' );

INSERT INTO tab_bus VALUES ( seq_bus.NEXTVAL, 'x234oo' );



BEGIN

add_relation (1, 3);

add_relation (1, 4);

add_relation (3, 3);

add_relation (3, 2);

add_relation (2, 2);

drop_relation (3, 2);

drop_relation (2, 2);

END ;



DECLARE

g_data SYS_REFCURSOR;

BEGIN

select_relation (1, 4, g_data);

select_relation (3, 3, g_data);

select_relation (2, 2, g_data);

select_relation (1, 1, g_data);

END ;




* This source code was highlighted with Source Code Highlighter .






рдкрд░реАрдХреНрд╖рдг



рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЙрдкрд░реНрдпреБрдХреНрдд рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдкрд░ рдЪрдпрди, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдбреАрдмрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдлрд┐рд░, рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рдмреЗрд╕ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕реНрдХреАрдорд╛) рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдмрдирд╛рдИ рдЧрдИрдВ, рдЬреЛ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдЖрдмрд╛рдж рдХрд░рддреА рд╣реИрдВред рд▓рдЧрднрдЧ рдЙрд╕реА рддрд░рд╣ рд╕реЗ, рд░рд┐рд╢реНрддреЛрдВ рдХреА рдПрдХ рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕рдВрдЦреНрдпрд╛ рдмрдирд╛рдИ рдЧрдИ рдереАред
CREATE OR REPLACE

PROCEDURE random_insert_data

( record_count NUMBER

) AS

start_time NUMBER DEFAULT DBMS_UTILITY.GET_TIME;

counter NUMBER;

field_value VARCHAR2(255);

BEGIN

FOR counter IN 1..record_count

LOOP

field_value := DBMS_RANDOM.STRING( 'A' , 9);

INSERT INTO tab_bus (b_id, bus_number) VALUES

( seq_bus.NEXTVAL

, field_value

);

END LOOP;

FOR counter IN 1..record_count

LOOP

field_value := INITCAP(DBMS_RANDOM.STRING( 'L' , 6))|| ' ' ||INITCAP(DBMS_RANDOM.STRING( 'L' , 9));

INSERT INTO tab_driver VALUES

( seq_driver.NEXTVAL

, field_value);

END LOOP;

DBMS_OUTPUT.PUT_LINE( TO_CHAR( (DBMS_UTILITY.GET_TIME-start_time)/100, '09.99' ) );

END ;



-- for standart many-to-many relations

CREATE PROCEDURE random_insert_rel

( rel_count NUMBER

, rel_from NUMBER

, rel_to NUMBER

) AS

start_time NUMBER DEFAULT DBMS_UTILITY.GET_TIME;

rel1_value VARCHAR2(255);

rel2_value VARCHAR2(255);

counter NUMBER;

BEGIN

FOR counter IN 1..rel_count

LOOP

rel1_value := ROUND(DBMS_RANDOM. VALUE (rel_from, rel_to));

rel2_value := ROUND(DBMS_RANDOM. VALUE (rel_from, rel_to));

add_relation(rel1_value, rel2_value);

END LOOP;

DBMS_OUTPUT.PUT_LINE( TO_CHAR( (DBMS_UTILITY.GET_TIME-start_time)/100, '09.99' ) );

END ;



-- for standart many-to-many relations

CREATE PROCEDURE random_delete_rel

( rel_count NUMBER

, rel_from NUMBER

, rel_to NUMBER

) AS

start_time NUMBER DEFAULT DBMS_UTILITY.GET_TIME;

rel1_value VARCHAR2(255);

rel2_value VARCHAR2(255);

counter NUMBER;

BEGIN

FOR counter IN 1..rel_count

LOOP

rel1_value := ROUND(DBMS_RANDOM. VALUE (rel_from, rel_to));

rel2_value := ROUND(DBMS_RANDOM. VALUE (rel_from, rel_to));

drop_relation(rel1_value, rel2_value);

END LOOP;

DBMS_OUTPUT.PUT_LINE( TO_CHAR( (DBMS_UTILITY.GET_TIME-start_time)/100, '09.99' ) );

END ;



-- for alternative many-to-many system with nested table

CREATE PROCEDURE random_insert_rel

( rel_count NUMBER

, rel_from NUMBER

, rel_to NUMBER

) AS

start_time NUMBER DEFAULT DBMS_UTILITY.GET_TIME;

rel1_value VARCHAR2(255);

rel2_value VARCHAR2(255);

counter NUMBER;

BEGIN

FOR counter IN 1..rel_count

LOOP

rel1_value := ROUND(DBMS_RANDOM. VALUE (rel_from, rel_to));

rel2_value := ROUND(DBMS_RANDOM. VALUE (rel_from, rel_to));

add_relation(rel1_value, rel2_value);

END LOOP;

DBMS_OUTPUT.PUT_LINE( TO_CHAR( (DBMS_UTILITY.GET_TIME-start_time)/100, '09.99' ) );

END ;



-- for alternative many-to-many system with nested table

CREATE PROCEDURE random_delete_rel

( rel_count NUMBER

, rel_from NUMBER

, rel_to NUMBER

) AS

start_time NUMBER DEFAULT DBMS_UTILITY.GET_TIME;

rel1_value VARCHAR2(255);

rel2_value VARCHAR2(255);

counter NUMBER;

BEGIN

FOR counter IN 1..rel_count

LOOP

rel1_value := ROUND(DBMS_RANDOM. VALUE (rel_from, rel_to));

rel2_value := ROUND(DBMS_RANDOM. VALUE (rel_from, rel_to));

drop_relation(rel1_value, rel2_value);

END LOOP;

DBMS_OUTPUT.PUT_LINE( TO_CHAR( (DBMS_UTILITY.GET_TIME-start_time)/100, '09.99' ) );

END ;




* This source code was highlighted with Source Code Highlighter .




рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдХреЛрдИ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдирд╣реАрдВ рд╣реИред



рдкрд░рд┐рдгрд╛рдо



N = 4, 1000, 100000 рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ n рд░рд┐рдХреЙрд░реНрдб рд╣реИрдВ, рдФрд░ n рд╕рдВрдмрдВрдз рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкрд░реАрдХреНрд╖рдг 10 рдкрджреЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрдирдореЗрдВ рд╕реЗ 6 рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдордп рдЕрдВрддрд░ рд╣реИрдВ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред



рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди, рдкрд╣рд▓реЗ рдЪрдпрди рдФрд░ рдмрд╛рдж рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдЕрдВрддрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рд╛рде рд╣реА рдЪрдпрди рдХреЗ рдмреАрдЪ рдПрдХ рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╛ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЛ рдХрд░реНрд╕рд░ рдореЗрдВ рдбреЗрдЯрд╛ рдбрд╛рд▓рддрд╛ рд╣реИред рдореБрдЦреНрдп рдорд╛рдк рд░рд┐рд╢реНрддреЛрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдирдореВрдирд╛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдП рдЧрдП рдереЗред рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рдЧрднрдЧ рд╕рднреА рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рд╣реЛрдЧреАред

рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдирдореВрдирд╛ 1 рдирдореВрдирд╛ реи рдирдореВрдирд╛ рей рдирдореВрдирд╛ рек рдирдореВрдирд╛ рел рдХрд╛ рдирд┐рд░реНрдорд╛рдг
extред рддрд╛рд▓рд┐рдХрд╛ 4 00,844 00,792 00,967 00.01 00.02 00,032
рдореЗрдВред рддрд╛рд▓рд┐рдХрд╛ 4 00,694 00,707 00,026 00.00 00.00 00,034
extред рддрд╛рд▓рд┐рдХрд╛, 1000 00,642 00,645 00,698 00.02 00.02 00,142
рдореЗрдВред рддрд╛рд▓рд┐рдХрд╛, 1000 00,687 00,695 00,344 00.00 00.00 00,721
extред рддрд╛рд▓рд┐рдХрд╛, 100000 00,648 00,697 01,323 режреж.резрек режреж.рекреп 14,613
рдореЗрдВред рддрд╛рд▓рд┐рдХрд╛, 100000 00,741 00,829 01,117 00.00 00.00 84,630


рд╕рдордп рд╕реЗрдХрдВрдб рдореЗрдВ рд╣реИред



рдирдореВрдирд╛ 1: рд╕рдВрдмрдВрдзрд┐рдд рдмреНрд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЕрдирд╛рдо рдмреНрд▓реЙрдХ рд╕реЗ рдХрд░реНрд╕рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХрд▓ рд╕рдВрдмрдВрдз рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

рдирдореВрдирд╛ 2: рд╕рдВрдмрдВрдзрд┐рдд рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рдВрдмрдВрдз рдХрд╛ рдирдореВрдирд╛ред

рдирдореВрдирд╛ 3: рдПрдХ рдЕрдирд╛рдо рдмреНрд▓реЙрдХ рд╕реЗ рдХрд░реНрд╕рд░ рддрдХ рд╕рдВрдмрдВрдзреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред

рдирдореВрдирд╛ 4: рдХрд░реНрд╕рд░ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рднреА рд░рд┐рд╢реНрддреЛрдВ рдХрд╛ рдкрд╣рд▓рд╛ рдЪрдпрдиред

рдирдореВрдирд╛ 5: рдХрд░реНрд╕рд░ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рднреА рд░рд┐рд╢реНрддреЛрдВ рдХреЗ рдмрд╛рдж рдХреЗ рдирдореВрдиреЗред

рдЬреЛрдбрд╝реЗрдВ: n рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдордпред



рдореИрдВ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдпрджрд┐ рд╣рдо 1-2 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕рдордп рдмрд┐рд▓реНрдХреБрд▓ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╛ рддреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдбрд╝рд╛ рд╣реЛрдЧрд╛ рдпрд╛ рд╕рд░реНрд╡рд░ рдХрдордЬреЛрд░ рд╣реЛрдЧрд╛ред рдпрд╣ рддрдереНрдп рдХрд┐ рдЬрд┐рд╕ рд╕рд░реНрд╡рд░ рдкрд░ рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡рд╣ рдХрд╛рдлреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИ, рдЗрд╕рдХреЗ рдорд╛рдЗрдирд╕ рднреА рд╣реИрдВ: рд╕рд╛рдЗрдб рдСрдкрд░реЗрд╢рди рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдбреЗрдЯрд╛ рдХреА рдереЛрдбрд╝реА рдорд╛рддреНрд░рд╛ рдкрд░ рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред



рдЗрд╕рд▓рд┐рдП, рд╡реИрдХрд▓реНрдкрд┐рдХ рдЕрд╡рддрд╛рд░ рдореЗрдВ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдорд╛рдирдХ рдПрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ (6 рдЧреБрдирд╛) рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдХрд▓реНрдк рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ рдЬрдм рдЖрдкрдХреЛ рдХрдИ (500 рд╕реЗ рдЕрдзрд┐рдХ) рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдиреЗ рдФрд░ рдирд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпрд╛рдВ рдХрдо рд╣реИрдВ, рддреЛ рдорд╛рдирд╡реАрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдЬрд╛рдВрдЪ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЕрдВрддрд░ рдХреЗрд╡рд▓ рдЕрдЧреЛрдЪрд░ рд╣реЛрдЧрд╛ред



рдЕрдм рдирдореВрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдПрдХ рдЕрдирд╛рдо рдмреНрд▓реЙрдХ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдореЗрдВ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рд┐рд░реНрдл рдЖрдзрд╛ рд╕реЗрдХрдВрдб рдХрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рд╕рдВрднрд╡рддрдГ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдордп рдХрд░реНрд╕рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рднреА) рдХрд╛ рдирдореВрдирд╛ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдиреЗрд╕реНрдЯреЗрдб рддрд╛рд▓рд┐рдХрд╛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ: рд▓рдЧрднрдЧ рдХрдо рд╕рдордп рдЧреБрдЬрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдХрд▓реНрдк рдЬрдм рд╡рд┐рдХрд▓реНрдк рдзреАрдорд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдбреЗрдЯрд╛ рдХрд╛ рдкрд╣рд▓рд╛ рдЪрдпрди рд╣реЛрддрд╛ рд╣реИред

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЕрдВрддрд┐рдо рддреБрд▓рдирд╛: рдХреНрд╡реЗрд░реА рддреБрд▓рдирд╛ред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдХреЛрдИ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЕрдВрддрд░ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

B.bus_number, d.driver_name рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ

рдЯреИрдм_рдмрд╕ рдмреА рд╕реЗ, рдЯреИрдм_рдбреНрд░рд╛рдЗрд╡рд░ рдбреА,

рдмрд╕_рдбреНрд░рд╛рдЗрд╡рд░ рдЖрд░

рдЬрд╣рд╛рдВ (b.b_id = r.bus_id)

рдФрд░ (r.driver_id = d.d_id);

B.bus_number, d.driver_name рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ

рдЯреИрдм_рдмрд╕ рдмреА рд╕реЗ, рдЯреИрдм_рдбреНрд░рд╛рдЗрд╡рд░ рдбреА,

рдЯреЗрдмрд▓ (b.bus_drivers) рдЖрд░

рдЬрд╣рд╛рдВ (b.b_id = p_bus)

рдФрд░ (d.d_id = p_driver);



рдирд┐рд╖реНрдХрд░реНрд╖



рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдиреЗрд╕реНрдЯреЗрдб рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ-рд╕реЗ-рдХрдИ рд╕рдВрдмрдВрдз рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЙрддрдирд╛ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдирд╣реАрдВ рдерд╛ рдЬрд┐рддрдирд╛ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╕рдВрдмрдВрдз рдмрдирд╛рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдкрд░рд┐рдорд╛рдг рдХрд╛ рдПрдХ рдХреНрд░рдо рд▓рдВрдмрд╛ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмрдбрд╝реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЪрдпрди рднреА рддреЗрдЬ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреНрд╡реЗрд░реА рд╕рдВрд░рдЪрдирд╛ рд╕реНрд╡рдпрдВ рд▓рдЧрднрдЧ рдЬрдЯрд┐рд▓рддрд╛ рдореЗрдВ рд╕рдорд╛рди рд╣реИред рдирдореВрдирд╛ рдХреЛрдб рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╕реЗ, рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕рд░рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдВрдмрдВрдз рдмрдирд╛рдиреЗ рдпрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡реИрдХрд▓реНрдкрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред



рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд░рд┐рд╢реНрддреЗ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрджрд┐:



рдпрд╣ рд░рд┐рд╢реНрддреЗ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдпрджрд┐




All Articles