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); |
рдирд┐рд╖реНрдХрд░реНрд╖
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдиреЗрд╕реНрдЯреЗрдб рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ-рд╕реЗ-рдХрдИ рд╕рдВрдмрдВрдз рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЙрддрдирд╛ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдирд╣реАрдВ рдерд╛ рдЬрд┐рддрдирд╛ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╕рдВрдмрдВрдз рдмрдирд╛рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдкрд░рд┐рдорд╛рдг рдХрд╛ рдПрдХ рдХреНрд░рдо рд▓рдВрдмрд╛ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмрдбрд╝реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЪрдпрди рднреА рддреЗрдЬ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреНрд╡реЗрд░реА рд╕рдВрд░рдЪрдирд╛ рд╕реНрд╡рдпрдВ рд▓рдЧрднрдЧ рдЬрдЯрд┐рд▓рддрд╛ рдореЗрдВ рд╕рдорд╛рди рд╣реИред рдирдореВрдирд╛ рдХреЛрдб рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╕реЗ, рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕рд░рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдВрдмрдВрдз рдмрдирд╛рдиреЗ рдпрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡реИрдХрд▓реНрдкрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред
рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд░рд┐рд╢реНрддреЗ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрджрд┐:
- рдЕрдХреНрд╕рд░ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмрдирд╛рдиреЗ рдпрд╛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ);
- рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреБрдЫ рдЯреЗрдмрд▓ рд╣реИрдВ, рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд░рд▓ рд╣реИ (рд╕рдВрдмрдВрдз рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧреЗрдЧрд╛);
- рдбреЗрдЯрд╛ рдХрд╛ рддрд░реНрдХ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдорддреБрд▓реНрдпрддрд╛ рдХрд╛ рдЕрд░реНрде рд╣реИ (рдпрд╣ рддрдп рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд░рд┐рд╢реНрддреЛрдВ рдХреЗ рд╕реНрддрдВрдн рдХреЛ рдХрд┐рд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдП)ред
рдпрд╣ рд░рд┐рд╢реНрддреЗ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдпрджрд┐
- рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХрдИ-рдХрдИ рдЖрдзрд╛рд░реЛрдВ рдкрд░ рдХрдИ рдЕрдиреНрдп (рдбреЗрдЯрд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рддрд░реНрдХ рдХреА рд╕рдордЭ рдХреЛ рд╕рд░рд▓ рдХрд░рддреА рд╣реИ) рд╕реЗ рдЬреБрдбрд╝реА рд╣реИ;
- рд╕рдВрдмрдВрдз рдмрд╣реБрдд рдХрдо рд╣реА рдмрдирд╛рдП рдФрд░ рдорд┐рдЯрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЧрдП рдФрд░ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЬреЛрдбрд╝рд╛ рднреА рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ (рдЧрддрд┐ рдореЗрдВ рдХреЛрдИ рд╣рд╛рдирд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ);
- рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ, рдЕрднреНрдпрд╛рд╡реЗрджрди рдФрд░, рд╕рдВрднрд╡рддрдГ, рдЪрдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
- рдХрдИ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рдПрдХ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдкрд░ рдирд╣реАрдВ (рдПрдХ рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди, рдХрдИ рдХреЙрд▓рдо рдмрдирд╛рдиреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ)ред