You are on page 1of 35

19


SQL:1999 (SQL3)

19: -


:
,

,

.

19: -



.

(1NF).


.

19: -


(nested
relations),
.

(non-first normal form, N1NF).

N1NF
(nested-relational model)


.

19: -

19: -

SQL3


SQL
.

SQL SQL3,
SQL
:

19: -

SQL3
,
,
,
,
,
,
,
.

19: -

SQL3
. SQL3
.
.
, ,

.
,
, .

, , , .

19: -

SQL3
.
CREATE TABLE
SQL3. ROW
:

CREATE TABLE
( INT, CHAR(50),
ROW ( CHAR(30), CHAR(4),
- CHAR(6), CHAR(30),
CHAR(30)));

19: -

SQL3
.

INSERT INTO
VALUES (1000, 'A. ', ('', '13',
'56225', '', ''));

19: -

SQL3
(user-defined types).


.
SQL3
CREATE TYPE.



.

19: -

SQL3

:
CREATE TYPE RectType AS
( x1 INT, x2 INT, y1 INT, y2 INT,
FUNCTION getArea (r RectType) RETURNS FLOAT
RETURN (x2-x1)*(y2-y1); END,
FUNCTION getPerimeter (r RectType) RETURNS
FLOAT
RETURN 2*(x2-x1) + 2*(y2-y1); END )
REF IS SYSTEM GENERATED
INSTANTIABLE
NOT FINAL;

19: -

SQL3


:
CREATE TABLE VLSI
( INT, GeneralRectType);

19: -

SQL3
SQL3
(
SQL3).


RGB.

ColoredGeneralRectType,

GeneralRectType:

19: -

SQL3
CREATE TYPE ColoredGeneralRectType UNDER
GeneralRectType AS
(colorR INT, colorG INT, colorB INT,
FUNCTION ...,
...
);

19: -

SQL3

(user-defined functions).


,
, (.. C++),
SQL3.

19: -

SQL3
CREATE FUNCTION MyFunction (IN MyParameter)
RETURNS FLOAT
EXTERNAL NAME MyFunctionFileName
LANGUAGE C
PARAMETER STYLE SQL
DETERMINISTIC
NO SQL;

19: -

SQL3
SQL3

.
SQL3 (reference
type) .

.

19: -

SQL3

C/C++.

.



.

19: -

SQL3
.


.

. CHAR VARCHAR

.
,
CHAR VARCHAR.

19: -

SQL3
SQL3
, (large
objects, LOBs):
CREATE TABLE
( INT NOT NULL,
VARCHAR(40),
BLOB(200K),
- CLOB(20K),
PRIMARY KEY ());

19: -

SQL3
. SQL3

(computationally complete).


.

.

19: -

SQL3
.
DECLARE :
DECLARE x INT;
DECLARE p BLOB(100K);
DECLARE flag BOOLEAN;

19: -

SQL3
. IF ...
THEN ... ELSE ... END IF

IF.
CASE, :

CASE x
WHEN 1 THEN y=100;
WHEN 2 THEN y=200;
WHEN default THEN SET y=0;
END CASE;

19: -

SQL3
. FOR ... END
FOR, WHILE ... END WHILE REPEAT ... UNTIL

.

19: -

SQL3
(trigger)
.

,
.
,


.

19: -

SQL3

:
,

,

(logging),
,
.

19: -

SQL3
CREATE TRIGGER -
BEFORE | AFTER < > ON
<->
[REFERENCING <
>]
[FOR EACH ROW | STATEMENT]
[WHEN (-)]
BEGIN
< >
END;

19: -


Stonebraker
,
:
1. ,
2. .

19: -


1.
,
.
.

19: -


2.

,
,
.

19: -


3.



.
CAD.

19: -


4. , , ,
- .


.

19: -

19: -

-

.
-
,

.



,
.

IBM, Microsoft Oracle
-.

You might also like