
Β ΕΠΑΛ - Συστήματα Διαχείρισης Βάσεων Δεδομένων Και Εφαρμογές Τους Στο Διαδίκτυο
Β ΕΠΑΛ - Συστήματα Διαχείρισης Βάσεων Δεδομένων Και Εφαρμογές Τους Στο Διαδίκτυο
,
., ., ., .
..
&
,
:
: ,
:
,
, .
, .
,
,
, .
,
, .
:
, . -19
, . -19
, -19
: /....
1.
()..................................................................... 5
1.1
.......................................................................................... 6
1.2
............................................................................ 8
1.3
............................................................................ 10
1.4
,
........................................................................................................................... 14
2.
3.
() .......................................................... 17
2.1
......................................................................................................... 18
2.2
.......................................................................................... 19
2.3
............................................................................ 20
2.4
.............................................................................. 22
2.5
.......................................................................................................... 25
2.6
...................................................................................................... 26
..........................! .
3.1
...................................................................................................................... 28
3.1.1
............................................................................................ 29
3.1.2
, ................................................ 30
3.2
................................................................................................... 31
3.2.1
, () ............................................. 32
3.2.2
......................................................................... 34
3.2.3
.................................................................................................. 36
3.3
......................................... 39
3.3.1
, , ............................... 43
3.3.2
............................................ 43
3.3.3
ER ............................... 45
3.3.4
............................................................. 49
, ........................................................... 52
3.4.2
...................................................... 54
3.5
............... 57
3.5.1
.................................. 58
3.5.2
............................................................................................................................... 61
4.
SQL..................................................................................... 64
................................................................................................................................. 65
4.1
4.1.1
SQL ...................................................................................... 68
4.1.2
................................................................................................. 72
4.2
SQL (DML).................................................. 78
4.2.1
SQL ........................................ 79
4.2.2
........................................................ 81
4.2.3
........................................................... 83
4.2.4
............................................................................... 85
4.2.5
.................................................................................. 93
4.2.6
...................................................... 95
4.1: SQL.................................................... 99
4.2: MySQL ................................... 100
5.
........................................................................................ 105
5.1
5.1.1
................................................... 107
5.1.2
.............................................................................. 111
5.1.3
.......................................................... 113
5.1.4
.................................................................. 119
5.1.5
.............................................................. 122
5.2
6.
........................................................................................... 127
..................................................................................... 130
6.1
6.1.1
6.1.2
6.2
7.
............................................................ 106
......................................................... 138
....................................................................................... 139
7.1
.................................................................................................................... 140
7.2
.................... 141
7.3
. 141
7.4
................................................................ 141
, ........................................................................................................... 147
1. ()
()
1.1
/
/ /:
.
,
.
, , ,
. 20
,
. ,
, ,
,
.
.
(ANSI
American National Standards Institute )
, . :
(DATA) ,
, .,
().
,
.
. ,
.
, .. , bytes
...
, , .
.
.
. , ..,
100.000 ,
, .
,
.
,
.
.
, :
/
1.
.
2. .
1.2
/
/ /:
, , , , .
.
, .
.
,
, . ,
,
, ,
.
.
.
,
. ()
:
. .
(record).
(field).
' . ,
.
.
(file) ,
( ,
) .
(record)
.
(field) ,
.
, :
, /,
, bytes.
bytes (field length).
, .
:
(alphanumeric), ,
, .
(numeric), .
(alphabetic), .
(date),
(.., 121298 12031998 ...,
).
(binary), ,
, , video .).
(logical),
: (True) (False).
(memo), ,
, , (), ,
, .
(record length)
.
( ) (record layout)
.
, ,
...
. (read) ,
, ,
( ) ,
. (write) ,
, .
1.1.
/
1.
2. ,
""
3. .
1.3
/
/ /:
, (
)
, .
, ,
,
. ,
,
.
, ' .
,
, ,
,
, .
.
,
, (interface)
. ,
.
(datadependent).
, ,
, (..,
, , ) .
.
, , ,
(keywords) .
:
,
.
,
,
.
10
.
.
,
.
,
.
.
, .
, 1 (..
, ), 2
. 1
, 2
. ,
,
,
.
.
.
.
. ,
1
(citations) .
1, ,
, .
.
,
( C, C++, Java, Visual Basic).
( Linux, Windows,
MacOS)..
.
,
. ,
. ""
,
.
(). : )
) .
, .
11
(..,
).
,
. ,
,
.
( , ),
, . ,
.
,
.
'
.
,
(versions) .
:
(data redundancy).
.
.
(data inconsistency).
()
,
.
(data sharing).
. ,
.
.
.
.
.
:
1. ,
.
2. ,
.
.
12
:
.
.
.
.
.
, ,
() (Database
Management Systems (DBMS)).
,
.
().
(Data Base Management System DBMS).
To , ,
, , , .,
, ,
.
.
/
1.
2.
3.
13
1.4
,
/
/ /:
/
/
. ,
,
,
.
.
.
. ,
, , ,
, .
.
.
.
.
.
.
.
, video,
. (multimedia databases)
.
,
.
.
.
,
.
.
14
. (search engines) Google, Bing, Yahoo!, ..
.
.
(spatial) . ,
( )
(..
, ..).
( , , , ,
..). ,
(Geographical Information System, GIS),
.
.
(decision support systems).
, , marketing ..,
.
,
,
. ,
.
(data warehouses),
(OnLine Analytical Processing, OLAP)
, .
. (data mining)
, ,
, ,
.
,
"" ,
,
.
.
(characterization), (discrimination),
(classification), (association rules), (clustering) ..
.
, ,
,
.
: ) )
.
15
.
/
1.
.
2.
.
3.
/.
4.
/ (.. , EURLex,
, Europa,
).
16
2.
()
()
17
2.1
/
/ /:
,
, , , , ,
. ,
,
.
/ (single user system)
,
( ) , (multi
user system).
:
( , ,
.).
.
.
/
1. .
2.
18
2.2
/
/ /:
ACID
GAP
, ACID (Atomicity, Consistency,
Isolation, Durability) (, , , ).
. ..
,
.
, ,
.
.
,
. ,
. ..
.
. , , ,
.
.
.
.
.
CAP (Consistency, Availability, Partition tolerance)
(, , ), Brewer.
:
, Brewer
.
,
.
,
.
/
1. ACID
2. GAP
19
2.3
/
/ /:
1960 ,
.
tapedbased .
. ,
.
(navigational),
. ( ) :
(Hierarchical Model)
Network Model
. (entity) , ,
.
.
. .
,
. ,
.
.
(network) ,
.
Relational Model, 1970 Edgar F.
Codd,
.
1980.
. 1990,
,
. SQL
(Structured Query Language).
,
20
(EntityRelationship model) .
1970 ,
.
,
.
,
,
.. GIS
(, )
( , .).
,
.
,
(, NoSQL, NewSQL).
.
,
.
NoSQL
web . NoSQL
"Not only SQL" SQL. NoSQL
, .
ACID
CAP.
,
NewSQL.
NoSQL ,
ACID .
/
1.
2.
3.
4.
5.
6.
7.
8.
NewSQL
21
2.4
/
/ /:
(ANSI/SPARC)
(hardware)
, . , , ,
..).
.
(interface) .
, ..
.
. , ,
.
(ANSI/SPARC):
(internal level),
, . .
(external level),
, .
(conceptual level),
.
.
:
. . :
.
. ,
. ,
TAXIS, ,
.
.
.
.
(SQL) ,
.
.
,
.
22
23
.
.
(transaction manager).
. ,
.
.
: ) ) .
.
Data Manipulation Language (DML query compiler).
.
.
.
:
Data Definition Language (DDL compiler).
(concurrency control manager).
(logging and recovery manager).
(buffer manager).
(storage manager).
(hardware) ,
.
/
.. , , /,
...
/
1.
2.
3.
4.
.
.
24
2.5
/
/ /:
,
. .
,
(.. .)
.
,
, (clientserver).
,
. ,
.
(server).
( ), ""
. ,
, (clients).
K ()
.
,
, .
.
, ,
.
,
.
.
.
/
1.
2. (clientserver)
3. K
25
2.6
/
/ /:
.
.
[Link]
2015 ,
[Link]
/
1. [Link]
2. [Link]
[Link]/en/ranking
26
3.
27
3.1
.
.
.
.
.
,
, , , ,
([Link] ).
/
/ /:
,
.
.
.
:
3.1
28
3.1.1
,
.
.
.
.
.
.
,
.
.
:
.
.
29
3.1.2. ,
.
, , , ..
.
, , .. ,
(.. 0) .
o
.
3.4.
(). ,
, ,
.
,
.
.
.
.
.
(.. )
.
/ .,
.
/
1.
(, )
2.
3.
30
3.2
/
/ /:
3 .
(data models). ,
.
,
.
. .
,
3.2.1 .
31
3.2.1. , ()
.
,
. ,
,
.
( 3.1) ,
.
() .
3.1 ,
( )
.
.
()
. ,
.
.
( )
.
. .
,
32
.
.
.
.
.
(
, ,
, .). ,
. ,
.
33
3.2.2.
.
.
,
.
/ .
( 3.1) () .
,
.
3.3.
3.2
, ,
.
3.2
.
3.3.
3.3
3.3 .
(,
, ..).
" ".
.
.
.
, ,
. ,
.
( ) .
.
34
,
.
3.3.
.
.
. .
35
3.2.3
. .
.
(relational data model) Codd 1970.
.
:
,
,
,
.
.
,
.
.
,
. ,
.
3.4 .
14355
78155
19
15889
151
3.4
3.4
15889 ,
151.
/ ,
/ .
. ,
, 2
3.5. ,
, . 3.4
"".
36
14355
4 NULL
78155
19
15889
151
15889
151
3.5
. 3.5,
,
NULL ( ). H 0 SPACE.
, NULL
.
.
.
,
. .
( 3.5.2).
37
/
1. i
.
2.
.
3.
.
4. , .
5. (NULL)
/ .
6.
.
7.
8. .
1:
. .
24
. ,
, , . 6
4 .
2, 4 8
.
, .
, .
,
. .
2:
.
, ,
.
/
19
151
38
3.3
(ERM)
(ERD).
. : (entities),
(attributes) (relationships).
/
/ /:
,
o
(cardinality) (optionality)
39
3.3.1. , ,
(instance)
. ,
.
. , , ,
.
.
. ,
.
(entity)
. ,
. .
. ,
.
.
, , .
. ,
, ,
. , ,
,
.
. .
, , .
.
, ,
Nikes Tzampadan
, ,
3.3.1:
.
, .
, ,
. ,
40
, , .
(attributes) .
, , , ,
. ,
. ,
, ,
4589543, , , 12
1. , (values)
.
,
(mandatory attributes). ,
. , ,
, .
(optional attributes).
.
, ,
3.3.2:
,
(unique identifier). ,
,
.
41
/
: (instance) (entity)
,
.
, ,
.
,
. .
//
3.3.3:
. . ,
.
, ,
,
. .
.
.
42
3.3.2.
, , ,
, ,
.
, .
. ,
,
. , (relationships)
. ,
(STUDENT) (COURSE) .
, .
,
.
:
(mandatory) (optional).
(EMPLOYEE) (JOB).
:
,
,
.
(cardinality) .
, . :
.
(4).
43
.
:
(mandatory) (cardinality)
.
(optionality)
(cardinality). ,
.
, :
1:M
M:
1:1
.
1:M
,
. .
,
.
M:
.
. ,
.
1:1
. .
.
, .
, 8 20,
.
.
/
:
:
44
3.3.3 ER
3.3.4:
(ERM)
. , ,
. (ERD)
.
.
,
.
.
ER
, :
3.3.5: ER
45
3.3.6: ER
*
, .
,
. email
.
.
,
ER #,
:
3.3.7: ER
,
. ,
.
:
3.3.8:
. .
.
. .
:
.
46
3.3.9:
, :
.
3.3.10:
/
, , ,
. ,
. :
.
.
.
3.3.11:
.
.
. :
3.3.12:
,
:
(mandatory) (cardinality)
.
(optionality)
(cardinality). ,
.
3.3.13: ER
47
/
:
,
.
.
,
. .
,
. .
:
,
.
.
, .
. .
,
.
, .
48
3.3.4
(:M).
.
.
, ,
.
.
. ER :
.
.
3.3.14:
, .
.
: 2
3.3.15: .
.
.
3.3.16:
.
. ER
, (intersection entity).
49
3.3.17: .
,
, .
.
. , ER
.
/
:
ER
.
3.3.18: ER
:
(:M) ,
. (intersection
entity). ,
.
3.3.19:
50
3.4
(Normalization)
/
/ /:
,
( )
.
( ), (
, ) ( ).
.
,
(normalization), .
,
3.2, ..
,
.
.
51
3.4.1 ,
/ . ,
:
.
,
.
,
.
3.4.1 ,
3.4.2.
, .
3.4.1
3.4.2
.
. ,
.
. . ,
.
.
. ,
(..
).
.
52
.
.
, ,
.
/
. ,
. ,
, (
). (
). ,
. (primary
key) (secondary).
.
(composite) .
, 3.4.3
, , .
.
19
151
3.4.3
53
3.4.2
3.2
.
:
.
,
. ,
( 3.4.4). ,
( ).
.
, ,
,
:
1) (NULL) ,
,
2) ,
.
.
,
, .
14355
4 23105555555
14355
4 69999999999
14582
19 23106666666
14695
151 23107777777
3.4.4
. 3.4.4
,
3.4.5.
14355
14582
19
14695
151
54
14355
23105555555
14355
69999999999
14582
23106666666
14695
23107777777
3.4.5
.
.
.
.
.
(1NF)
. ,
.
.
,
.
.
, .
.
.
.
14355
14666
. 8
14582
19
14695
151
14355
14666
. 8
14582
19
14695
151
55
14355
14355
14355
14355
14666
14582
14695
/
1.
.
2.
3. .
4. .
5.
.
6. .
1:
.
3.4.1.
:
2:
1
(, )
56
3.5
, ,
.
ER
.
(relational
databases)
(Entity Relationship model)
.
/
/ /:
, ,
57
3.5.1
. ,
, ER
.
.
.
.
.
.
.
. ,
.
3.5.1:
.
. .
.
,
.
o (primary key (PK))
. , o
_.
.
.
58
3.5.2: _
o
. ,
.
,
. , o .
.
3.5.3:
_ _
3.5.4:
59
/
:
.
3.5.5:
:
.
:
100
3.5.6:
60
3.5.2
.
, , ()
.
() .
. _, , email.
. ,
, , email
ghgh@[Link] S1001. _ o
. . , ,
.
() ,
,
.
.
. .
. , .
() :
_, , email,
.
, .
,
, . email
. _ ()
.
, _
.
, .
61
3.5.7:
ER
:
o
.
( )
3.5.7.
.
. ()
.
.
, .
.
( _, , email)
, .
pk fk
.
. *
.
,
,
.
. ,
.
( )
,
62
_,
.
. (*) ()
.
( ) ,
pk.
, _ _
() .
.
. .
.
.
_
. fk
.
.
3.5.8: ER .
/
: ER
ER
.
.
.
. ,
Java.
, .
10.00 12.00,
17.00 19.00.
3.5.9: ER
63
4. SQL
SQL
64
/
/ /:
SQL
SQL (Structured Query Language)
SQL = Structured Query Language
( squl skwel)
. SQL
IBM 1970 SEQUEL. SQL
,
.
1986 SQL (standard) ANSI
(American National Standards Institute) 1987 ISO (International
Organization for Standardization). (7) SQL
2011.
SQL
. ,
SQL,
SQL.
, .. MySQL Postgres
, . , SQL
,
SQL,
.
SQL :
DDL = Data Definition Language, .
SQL (SQL
DDL) SQL
DML = Data Manipulation Language, .
(SQL DML).
, ,
. SQL
( ),
, ,
( ).
, SQL DDL
SQL DML
.
.
65
:
(DDL)
(DML)
/
(DML)
(DML)
//
, SQL
.
4.1 SQL,
4.2 .
/
1) ,
, , ,
, . ,
(free) .
()
.
.
) ( )
.
) (, ,
) .
66
67
4.1.1 SQL
/
/ /:
SQL
SQL
SQL
SQL
,
.
.
, ,
. ,
.
SQL ,
,
.
SQL,
. .
, .. , ,
_, _, , .
. SQL.
SQL,
SQL.
SQL : , , ,
, .
, ,
,
. .
, . 41
, _,
(Die Welle).
41.
, ,
, .. 4,25 .
, ,
, , , , ,
, .
. ,
68
42. ,
SQL
SQL
. , .
SQL INTEGER,
FLOAT. 41
SQL .
INTEGER
( )
FLOAT
,
, INTEGER. ,
_ , FLOAT
.
, .
.
, .
Web 5
43.
43 ,
Web.
SQL
,
, .
SQL ()
CHARACTER. SQL
CHARACTER(N), N
, . CHARACTER
VARYING(N) VARCHAR(N)
N. 42 CHAR VARCHAR SQL.
69
CHARACTER(N)
() N. N
CHAR(N)
.
, ..
CHARACTER
, N.
VARYING(N)
VARCHAR(N)
, _
,
VARCHAR(100)
, 100 .
,
. .
CHARACTER(1).
DATE, TIME
TIMESTAMP. DATE
(YEAR) 0001 9999, (MONTH) (DAY). TIME
(HOUR), (MINUTE)
(SECOND). TIMESTAMP
, , , , . 43
DATE, TIME TIMESTAP.
DATE,
TIME,
TIMESTAMP .
43. DATE, TIME TIMESTAMP SQL
, 24062015 DATE,
[Link] TIME, 24062015 [Link].
,
DATE. 43
, , _
/ .
01051999
24061999
44. (. , , _)
70
4.1: SQL
SQL.
/
1) , : )
, ) )
2)
: , , , .
1) :
2003 18,37
, 1985 12,75
) .
) ,
.
) SQL .
71
4.1.2
/
/ /:
SQL. SQL
CREATE TABLE, :
CREATE TABLE <_>
(
< 1>
< 1>,
< 2>
< 2>,
< >
< >
, CREATE TABLE,
.
(
. ()
.
.
,. ).
.
, ,
:
CREATE TABLE
(
VARCHAR(100),
INTEGER
)
: . ""
100 (VARCHAR(100)), ""
(INTEGER).
44,
, :
72
CREATE TABLE
(
VARCHAR(50),
VARCHAR (50),
VARCHAR (50),
_ DATE,
CHAR(1)
)
,
50, VARCHAR(50). _
, DATE, ( ).
CREATE TABLE
.
,
, . , NULL,
.
,
. NULL
.
(default value)
,
.
, ,
..
.
,
.
SQL, CREATE TABLE
DEFAULT <> .
:
CREATE TABLE
(
VARCHAR(50),
VARCHAR (50),
VARCHAR (50),
_ DATE,
CHAR(1),
VARCHAR(50) DEFAULT ''
)
73
.
: ,
.
SQL NULL NOT NULL. NULL
, NOT
NULL .
, ,
NOT NULL, :
CREATE TABLE (
VARCHAR(100) NOT NULL,
INT
)
, ,
, NOT NULL
.
CREATE TABLE (
VARCHAR(50) NOT NULL,
VARCHAR (50) NOT NULL,
VARCHAR (50),
_ DATE,
CHAR(1),
VARCHAR(50) DEFAULT ''
)
.
CREATE TABLE PRIMARY KEY (< >). PRIMARY KEY
(< >) CREATE
TABLE.
.
.
.
, , .. ,
, ... :
74
CREATE TABLE
(
VARCHAR(100) NOT NULL,
INTEGER,
PRIMARY KEY ()
)
,
. .
,
.
:
CREATE TABLE (
INT,
.
, . SQL
,
.
SQL
FOREIGN KEY (<>) REFERENCES < > ( < >) .
,
(, , ).
.
,
.
,
. ()
.
. :
_ _
45. (_, _, )
_ .
, _
75
.
,
, .
:
_
( , )
_
.
. ,
(_, _)
.
SQL:
CREATE TABLE
(
_ ,
_ CHAR(9),
CHAR(1),
PRIMARY KEY (_, _),
FOREIGN KEY (_) REFERENCES ()
)
_ ,
. (FOREIGN
KEY) .
,
.
.
, .
, ,
,
, :
() ,
,
,
,
(
).
:
76
CREATE TABLE (
_ INT,
_ CHAR(9),
_ VARCHAR(100),
FLOAT,
PRIMARY KEY (_, _, _),
FOREIGN KEY (_) REFERENCES (),
FOREIGN KEY (_) REFERENCES ()
)
_ ,
_ VARCHAR(100),
.
4.2: MySQL
MySQL
MySQL Workbench.
/
1) 1 ,
:
2003 18,37
, 1985 12,75
) .
)
.
) SQL .
77
78
4.2.1 SQL
/
/ /:
INSERT INTO SQL
INSERT INTO
INSERT INTO SQL. INSERT INTO :
INSERT INTO < > VALUES (_1, _2, _3, ...)
.
.
.
,
SQL :
INSERT INTO VALUES (863, '', '',
'', '19990624', '', '')
CREATE TABLE
: , , , , _, , .
''.
INSERT INTO,
:
863
19990624
,
, INSERT INTO
:
INSERT INTO < > (_1, _2, _3, )
VALUES (_1, _2, _3, ...)
_1 _1 , _2 _2 ...
,
,
INSERT INTO :
INSERT INTO (, , , , )
VALUES (864, '', '', '', '')
79
863
864
19990624
NULL
_ ,
NULL .
_ UPDATE
.
,
, '',
(DEFAULT).
/
1) SQL
:
865, '', '', '', NULL, '', ''
866, '', '', '', '19980705', '', ''
867, '', '', '', '19980719', ''
868, '', '', '', '19980731', ''
2) SQL
.
.
3) / /
.
4) SQL
.
5) 1 ,
:
2003 18,37
, 1985 12,75
SQL
. :
.
80
4.2.2
/
/ /:
UPDATE
SQL UPDATE.
. UPDATE :
UPDATE <>
SET < >
()
3
. UPDATE :
UPDATE
SET = 3
,
UPDATE :
Web 3
48. UPDATE
UPDATE
, . ,
WHERE :
UPDATE <>
SET < >
WHERE < >
,
5 3 :
UPDATE
SET = 3
WHERE = 5
,
WHERE.
81
/
1) 4.2.1
.
)
) SQL
_ .
2) SQL
:
) .
) .
:
, .
82
4.2.3
/
/ /:
DELETE
DELETE SQL. DELETE :
DELETE FROM <>
, :
DELETE FROM
,
DELETE.
.
DELETE ,
WHERE, :
DELETE FROM <>
WHERE < >
20142015, SQL:
DELETE FROM
WHERE _ = '20142015'
DELETE
, .
,
. () ,
.
,
.
83
/
1)
SQL.
2)
3) ,
SQL .
4)
4 4.2.1.
SQL.
84
4.2.4
/
/ /:
SELECT
DISTINCT
WHERE
FROM SELECT
SELECT
Select
SQL . Select,
() .
SQL / :
SELECT _1, _2, _n
FROM _1, _2, , _m
WHERE
Select , . T
() .
From () ,
/ / .
Where ( ) / .
Select,
from,
where,
Select
SELECT ,
FROM
,
SELECT *
FROM
Select ,
85
, :
.
( + , , * , / ),
.
.
SELECT , *3
FROM
3 (
),
.
() .
, .
: SELECT.
SELECT , *3 _
FROM
3 (
), _
[Link] : (*3)
[Link]
(_
.
(concat)
. .
SELECT concat(, )
FROM
(), .
.
, , SELECT
.
, .
SELECT concat (, ,)
FROM
, ,
86
[Link]
[Link] &
&
'',
()
. distinct
, distinct
select
SELECT
FROM
()
,
distinct
SELECT DISTINCT
FROM
,
SELECT DISTINCT ,
FROM
WHERE
Where
.
,
, , .
:
,
:
87
<>
>
<
>=
<=
BETWEENAND
IN (LIST)
LIKE
IS NULL
( )
. LIKE, :
LIKE
% ()
(0, 1, )
- ( )
AND, OR NOT. :
NOT, AND, OR
.
:
SELECT ,
FROM
WHERE =''
, ,
SELECT ,
FROM
WHERE >=4
,
4
SELECT ,
FROM
WHERE <>4
,
4
88
SELECT ,
FROM
WHERE BETWEEN 4 AND 5
,
4 5 , 4 5
SELECT ,
FROM
WHERE IN (4, 5)
,
4 5,
SELECT ,
FROM
WHERE LIKE "%"
, ,
M
SELECT ,
FROM
WHERE LIKE "
"
, ,
M 5
SELECT ,
FROM
WHERE _ IS NULL
, ,
_
SELECT ,
FROM
WHERE NOT LIKE "%"
, ,
M
SELECT ,
FROM
WHERE _ IS NOT NULL
, ,
_
89
, ,
M
SELECT ,
FROM
WHERE LIKE "%" AND ='' OR =''
, ,
M
SELECT ,
FROM
WHERE LIKE "%" AND (='' OR ='')
SELECT ,
FROM
WHERE LIKE "%" OR ='' AND =''
, ,
M
: (Not, And, Or)
[Link]
[Link]
,
( )
FROM
,
.
. from .
, where
. :
<>.<>
from .
.
,
90
:
<>.<>
SELECT , ,
FROM ,
WHERE .= ._
,
, . ,
SELECT , ,
FROM ,
WHERE .= ._ AND _='20132014'
,
, 20132014. ,
20132014
WHERE .
,
.
SELECT ,
FROM ,
WHERE .= ._ AND IN (SELECT
FROM
WHERE _='20132014')
,
, ,
20132014. ,
20132014)
91
/
1. select,
:
, , ,
_
, , ,
_
20142015
20142015
92
4.2.5
/
/ /:
order by
ORDER BY
SQL order by
(.. ) .
SELECT ,
FROM
ORDER BY
,
,
,
asc () desc (). ,
.
SELECT ,
FROM
ORDER BY DESC, ASC
,
, ,
.
.
SELECT , ,
FROM ,
WHERE .= ._
ORDER BY
,
, . ,
,
.
Select,
.
93
[Link] ,
[Link]
/
1. select,
:
,
20152016
.
20142015, >10.
94
4.2.6
/
/ /:
group by
SQL 5 .
, :
() :
AVG ()
( )
COUNT()
MAX ()
MIN ()
SUM ()
( )
:
SELECT _, AVG()
FROM
WHERE _='
() '
_
, ()
SELECT _, MIN()
FROM
WHERE _='
() '
_
, ()
SELECT _, COUNT(*)
FROM
WHERE _=' ()
' AND <10
_
, ()
10
95
GROUP BY
,
.
group by
.
.
SELECT , COUNT(*)
FROM
GROUP BY
,
SELECT , COUNT(*)
FROM
WHERE _='20142015'
GROUP BY
,
, 20142015
SELECT , COUNT(*)
FROM
WHERE <>'' AND _='20142015'
GROUP BY
, , ,
20142015, . where, .
HAVING
having. having
(group by) .
SELECT _, AVG()
FROM
GROUP BY _
HAVING AVG()>15
_ ,
15
SELECT , _, AVG()
FROM ,
WHERE .=.
GROUP BY , _
HAVING AVG()>15
96
, ,
, ,
15
[Link] count()
[Link] count()
,
97
/
1. select,
:
20142015
( )
20142015
( )
2014
2015 (
)
4
/
/ /:
,
.
:
1. .
2. ,
. :
.
3. .
4.
.
. :
.
5. .
:
6. .
98
4.1:
SQL
INTEGER
( )
BIGINT
19 .
INTEGER(p)
p .
SMALLINT
5 .
BINARY(n)
, n.
BOOLEAN
TRUE FALSE.
BINARY
n.
VARYING(n),
VARBINARY(n)
FLOAT
DECIMAL(p, s)
p s. s
p. ,
.
NUMERIC(p, s)
DECIMAL.
FLOAT(p)
(mantissa) p.
10.
REAL
(mantissa) 7.
DOUBLE
(mantissa) 16.
PRECISION
CHARACTER(N) () N. N
.
, .. .
CHARACTER
, N.
VARYING(N),
VARCHAR(N)
DATE,
TIME,
, .
TIMESTAMP
INTERVAL
, .
COLLECTION
ARRAY ( SQL99)
(ARRAY,
. MULTISET ( SQL2003)
MULTISET )
.
SQL.
XML
XML.
99
4.2:
MySQL
MySQL ( Community Server 5.6.21)
MySQL Workbench.
.
1, MySQL Workbench
CREATE TABLE .
2. MySQL Workbench
100
3.
/
MySQL Workbench.
4. / MySQL Workbench
101
5.
6. SQL
MySQL Workbench
(DEFAULT CHARSET)
,
(ENGINE = InnoDB).
,
, .
102
7.
8.
9.
MySQL,
,
:
.
.
103
10.
,
(FOREIGN KEY).
, ( ) .
104
5.
105
5.1
/
/ /:
, ,
.
,
. ,
(Database Administrator DBA
).
.
.
, ,
(.. ,
) . ,
.
, .
,
.
:
,
,
,
,
,
.
Bureau of Labor Statistics, US Department of Labor:
[Link]
[Link] , [Link]
/
1. ( )
.
2. (..
[Link] , [Link] ) (..
[Link] , [Link] )
. ,
.
106
5.1.1
/
/ /:
(
, )
(
, )
.
.
(database server).
( )
.
.
. , (CD DVD), ,
,
(download) . (Windows,
UNIX, Linux, Mac OS) .
:
,
,
,
.
(manual) (automatic).
(command line)
.
.
. MS Windows Mac OS
(installers)
(installation wizard) (command line)
(GUI graphical user interface).
. UNIX Linux
(software repositories).
(software packages)
.
.
, ,
107
,
. :
: (
) ( ).
(partition) .
.
.
:
MySQL 9
MyISAM InnoDB.
CREATE DATABASE ( ).
,
, ,
.
(database engine).
,
, , .
: (service)
.
. ,
.
:
.
.
(user name)
.
.
(character set):
(.. ),
.
,
, .
:
.
TCP/IP.
(.. TCP/IP )
.
(log files):
.
108
,
.
:
.
(backup) (replication):
. ,
.
,
() .
5.1 MySQL: ( ),
( ), ( ), ( ) [: MySQL Installer GUI
[Link] ]
.
(configuration files)
.
.
109
MySQL: [Link]
MS SQL Server Express: [Link]
servereditions/[Link]
Oracle Database Express: [Link]
technologies/expressedition/downloads/[Link]
IBM DB2 Express: [Link]
c/[Link]
MySQL: [Link] MS
SQL Server Express: [Link]
us/[Link]
Oracle Database Express: Windows installation
[Link] , Linux installation
[Link] DB2:
[Link]
[Link]/support/knowledgecenter/SSEPGG_10.5.0/[Link]
lang=en
o
c
/
/
1. MySQL (
[Link] ).
.
2. MySQL.
([Link] Windows [Link] Linux)
(.. Notepad
Windows, GEdit Linux).
.
3. [Link]
[Link] MySQL
.
(storage limits),
(transactions),
(geospatial support),
(compressed encrypted data), (foreign key).
110
5.1.2
/
/ /:
SQL
CREATE
DATABASE.
CREATE DATABASE mathitologio
mathitologio.
CREATE DATABASE
, .. ,
,
, (log files).
.
MySQL,
( CHARACTER SET)
( COLLATE). ,
CREATE DATABASE mathitologio CHARACTER SET greek COLLATE greek_general_ci
mathitologio,
( )
ISO 88597 Greek
. Unicode
( ), .
CREATE DATABASE mathitologio CHARACTER SET ut8 COLLATE utf8_general_ci
.
.
, SQL .
.
.
, .
SQL,
, .
111
, . (schema)
, .. ,
.
CREATE SCHEMA SQL
.
.
MySQL (5.6.25, 2015)
CREATE SCHEMA
CREATE DATABASE ( SCHEMA
DATABASE).
112
5.1.3
/
/ /:
SQL
(, , , )
SQL (, ,
)
(user account).
.
,
, , .
.
.
.
,
. MySQL
CREATE USER.
CREATE USER 'g_pappas'
g_pappas.
. MySQL,
CREATE USER IDENTIFIED BY
.
CREATE USER 'k_aggelou' IDENTIFIED BY 'p@$$'
k_aggelou p@$$.
,
(password).
.
113
. MySQL [Link].
SELECT * FROM [Link]
.
.
CREATE USER IDENTIFIED BY
[Link].
[Link] .
, MySQL SET
PASSWORD.
SET PASSWORD FOR 'a_dimou' = PASSWORD('0p3n')
0p3n a_dimou.
PASSWORD(...) [Link]
.
MySQL SET PASSWORD
CREATE USER IDENTIFIED BY '
PASSWORD(...).
.
. , MySQL
root.
( ) ()
(). MySQL
RENAME USER.
RENAME USER root TO db_admin
root db_admin.
.
, .. o
.
DROP USER.
DROP USER 'm_alexiou'
m_alexiou.
114
. ,
(privileges). ,
(grant)
(revoke).
, .
,
.
MySQL
.
5.1 MySQL
ALL
GRANT OPTION
, , ,
ALTER
, ,
CREATE
, ,
CREATE USER
DELETE
, ,
DROP
, ,
GRANT
, ,
OPTION
INDEX
, ,
INSERT
, , ,
REFERENCES
, , ,
SELECT
, , ,
SHUTDOWN
SUPER
UPDATE
, , ,
.
.
MySQL GRANT,
115
<privilege> , <level>
<user> .
:
*.* ,
db.* db,
[Link] table db,
[Link](column) column table
db.
GRANT
.
, .
MySQL
(, , , ).
,
(, , , ).
GRANT ALL ON *.* TO g_pappas
g_pappas.
g_pappas
.
ALL
(, , , ).
,
... GRANT ALL
GRANT OPTION.
GRANT CREATE, DROP ON mathitologio.* TO k_aggelou
k_aggelou (CREATE)
mathitologio (DROP) mathitologio.
GRANT SELECT, INSERT ON mathitologio.
TO a_dimou, m_alexiou
a_dimou m_alexiou
(SELECT) (INSERT)
mathitologio.
GRANT SELECT (, , ), UPDATE ()
ON mathitologio. TO d_georgiou
d_georgiou (SELECT)
, mathitologio,
116
(UPDATE) mathitologio.
d_georgiou SELECT ,
UPDATE
.
GRANT OPTION
.
WITH GRANT OPTION GRANT. ,
MySQL
GRANT SELECT ON mathitologio.* TO i_petrou WITH GRANT OPTION
i_petrou
mathitologio i_petrou
mathitologio .
.
GRANT OPTION ,
.
.
, user1
SELECT, INSERT, UPDATE, DELETE GRANT OPTION, user2
SELECT, UPDATE. user1 GRANT OPTION
user2 INSERT, DELETE
user2 . user1
DROP ( GRANT OPTION). user1
DROP GRANT OPTION, DROP user2
GRANT OPTION . ,
,
GRANT OPTION.
:
.
SELECT.
. .
GRANT OPTION .
,
.
REVOKE. , MySQL
REVOKE SELECT, INSERT ON [Link] TO a_dimou
a_dimou
117
GRANT
m_alexiou .
. ,
(roles). CREATE ROLE
.
GRANT, . ,
GRANT,
.
.
.
MySQL (5.6.25, 2015)
.
/
1. MySQL
CREATE USER GRANT OPTION.
.
,
secret.
, SELECT
mathitologio, INSERT
mathitologio UPDATE
mathitologio.
SQL
.
SQL
.
118
5.1.4
/
/ /:
SQL (, )
(, , , )
, ,
.
,
SELECT .
SELECT
. SELECT:
(WHERE),
(MAX) (MIN) ,
(ORDER BY),
(GROUP BY).
, mathitologio (, )
. 4
, :
SELECT *
FROM
WHERE =4
,
4.
.
,
:
SELECT MAX()
FROM
,
.
SELECT.
.
( )
.
SELECT
119
(index).
. ,
.
,
.
.
.
.
CREATE INDEX. ,
CREATE INDEX _idx
ON ()
. SELECT
.
. ,
mathitologio (, , , ,
_, , ) .
CREATE INDEX _idx
ON (, )
.
SELECT
. SELECT
. ,
:
SELECT *
FROM
WHERE =
SELECT *
FROM
WHERE = AND =
SELECT *
FROM
WHERE =
,
.
120
CREATE INDEX
,
( ), (.. B+ ,
),
.
, .
. ,
( ). ,
. ,
,
.
, ..
.
DROP INDEX. ,
DROP INDEX _idx
ON
.
(SELECT), (INSERT),
(UPDATE) (DELETE)
.
.
/
1. MySQL
INDEX.
mathitologio
4. SQL
( )
.
.
121
5.1.5
/
/ /:
(
, , )
.
,
, :
,
,
,
,
.
,
.
, (..
,
, ),
(.. ),
. ,
.
MySQL mysqld stop
mysql start.
, MySQL.
Windows MySQL C:\mysql\bin.
:
C:\mysql\bin\mysqld stop
:
C:\mysql\bin\mysqld
122
/etc/init.d/mysqld stop
:
/etc/init.d/mysqld
MySQL
SHUTDOWN.
.
.
(log files)
.
.
MySQL :
(error log)
(query log)
(slow query log)
.
.err.
.
.
.log.
.
. ,
.
[Link].
(
).
.
(execution plan)
.
.
MySQL EXPLAIN .
,
EXPLAIN SELECT *
FROM
WHERE = AND =
123
.
.
,
( )
.
(backup) .
(restore)
(.. ,
, ..).
(..
, ).
MySQL mysqldump
.
mysqldump (physical backup) ,
.
(logical backup), SQL ,
(CREATE DATABASE, CREATE TABLE, CREATE INDEX)
(INSERT).
. mysqldump
MySQL. ,
mathitologio, :
Windows
C:\mysql\bin\mysqldump u root p mathitologio > mathitologio_bak.sql
Linux
/etc/init.d/mysqldump u root p mathitologio > mathitologio_bak.sql
u (
root) p .
mathitologio_bak.sql ( >
).
SQL .
.
all
databases. ,
:
Windows
C:\mysql\bin\mysqldump u root p alldatabases > full_bak.sql
Linux
124
full_bak.sql SQL
.
MySQL
mysqldump.
< .
, mathitologio :
Windows
C:\mysql\bin\mysqldump u root p new_mathitologio < mathitologio_bak.sql
Linux
/etc/init.d/mysqldump u root p new_mathitologio < mathitologio_bak.sql
, mathitologio_bak.sql ,
mathitologio new_mathitologio. ,
mathitologio_bak.sql .
CREATE DATABASE
.
, :
Windows
C:\mysql\bin\mysqldump u root p < full_bak.sql
Linux
/etc/init.d/mysqldump u root p < full_bak.sql
, full_bak.sql ,
.
full_bak.sql
CREATE DATABASE.
,
.
( ) .
(upgrade) ,
,
. ,
,
. .
,
.
.
125
,
.
,
. MySQL
mysql_upgrade.
.
/
1.
MySQL
,
: mysqld generallog logerror
slowquerylog.
MySQL .
(.err),
(.log) (
[Link])
(.. Notepad Windows, GEdit Linux).
.
.
.
2.
mathitologio.
.
.
mathitologio
.
126
5.2
/
/ /:
,
SQL
.
,
.
(GUI graphical user interface)
.
:
,
,
,
SQL (, , , )
,
,
,
,
,
,
.
.
.
MySQL MySQL
Workbench phpMyAdmin. Toad for MySQL,
HeidiSQL Sequel Pro.
( .)
127
.
: .
(
).
: / (free/open source)
,
. (closed
source proprietary)
.
:
(.. Windows, UNIX/Linux, MacOS),
(crossplatform),
.
: (..
MySQL, Oracle Database, MS SQL Server, IBM DB2),
.
: (client
application),
.
(server application),
(
)
(web browser) .
.
5.2
MySQL Workbench
Windows,
Linux, MacOS
MySQL
MySQL
MySQL, Oracle, MS
phpMyAdmin
Windows,
Linux
Toad
MySQL,
Windows
Oracle Enterprise
Manager Database
DB2, Sybase
Windows,
UNIX, Linux
Oracle
Windows
MS SQL Server
Windows,
IBM DB2
UNIX, Linux
Management
MS SQL Server
Management Studio
IBM Data Server
Manager
128
MySQL
MySQL Workbench: [Link]
phpMyAdmin: [Link]
phpMyAdmin: [Link]
config/
Toad for MySQL: [Link]
HeidiSQL: [Link]
Sequel Pro: [Link]
/
1. Wikipedia
[Link]
. Wikipedia,
MySQL.
.
2. phpMyAdmin (
, [Link]
config/
).
.
.
129
6.
130
6.1 NoSQL
/
/ /:
NoSQL
NoSQL
NoSQL
, SQL
. ,
, ,
. (
large scale applications)
. ,
,
.
,
(agility)
.
, ,
. NoSQL
(Not Only SQL)
.
NoSQL , ,
. ,
.
Google, Amazon, Facebook
.
,
.
,
NoSQL ,
, ,
.
131
6.1.1 NoSQL
,
NoSQL .
NoSQL
! NoSQL
.
,
:
(schemaless data
representation): NoSQL
.
,
,
.
: NoSQL
, SQL, (APIs)
(..
javascript, php) .
: NoSQL ,
, ,
.
: NoSQL
,
,
. (
) ,
,
. NoSQL
.
NoSQL
.
NoSQL /
.
132
6.1.2 () NoSQL
NoSQL
.
, NoSQL
.
:
(Columnoriented)
(Document Stores)
(Key Value Stores)
(Graph)
(Columnoriented)
,
. ,
, ,
.
, :
A1
12/11/1998 18.2
B4
02/05/1998 17.8
E4
03/05/1999 16.9
11/02/1997 19.5
:
A1,
B4,
8,
E4,
, , 12/11/1998, 18.2
, , 11/02/1997, 19.5
, , 02/05/1998, 17.8
, , 03/05/1999, 16.9
:
A1, B4, 8, E4
, , ,
, , ,
12/11/1998, 11/02/1997, 02/05/1998, 03/05/1999
18.2, 19.5, 17.8, 16.9
,
.
, (partitioning, caching,
indexing).
133
. ,
, .
,
,
, , .
:
BigTable [Link]
Hadoop/HBase [Link]
Cassandra [Link]
SimpleDB [Link]
Cloudera [Link]
(Document Stores)
,
(documentoriented databases), ,
.
JSON (JavaScript Object Notation [Link] ), BSON (Binary JSON
[Link] ), XML (Extensible Markup Language
[Link] )
HTTP RESTful ().
( ) ,
.
, () ().
,
.
JSON:
{
: A1,
: ,
: ,
: 12/11/1998,
: 18.2
}
(
):
{
: B4,
: ,
: ,
: 11/02/1997
}
134
,
() ():
{
: 8,
: ,
: ,
: 02/05/1998,
: 17.8,
:
{
: 23,
: 73100,
:
}
:
[
{: , : 12},
{: , : 6},
{: , : 18},
]
}
, 2
( ),
( ) ( ).
( )
,
,
.
, ,
:
MongoDB [Link]
CouchDB [Link]
RavenDB [Link]
Terrastore [Link]
BaseX [Link]
eXist [Link]
135
,
:
A1_
A1_
A1_
12/11/1998
A1_
18.2
B4_
B4_
B4_
11/02/1997
8_
8_
8_
02/05/1998
8_
17.8
8__
23
8__
73100
8__
8__
12
8__
8__
18
:
Redis [Link]
Membase [Link]
Voldemort [Link]
MemcacheDB [Link]
(graph)
noSQL
.
,
.
,
, ,
.
,
.
,
136
:
Neo4J [Link]
FlockDB [Link]
InfiniteGraph [Link]
/
1. ,
2. NoSQL
3. NoSQL .
4. .
5.
.
6. .
7.
8.
.
9.
10.
.
137
6.2
/
/ /:
:
(centralized systems),
.
.
/ (client/server
architecture) .
()
.
, ,
.
/. /
(twotier
threetier architecture).
(twotier) (user interface)
(application programs),
(query & transaction server). , ,
(Application Programming Interfaces API).
. (application
server) (web server). ,
( )
(business logic) .
.
,
.
/
1.
.
2.
.
138
7.
139
7.1
. ,
,
.
/
/ /:
/
140
7.2
(),
,
.
: [Link]
.
141
1.
2. . ,
, .
3.
4.
5.
6. " "
7. ""
8. SQL
142
7.3
.
.
. .
.
1.
2.
3.
4.
(cloud)
5. .
.
.
(ER) .
.
(ER) .
,
.
6. .
SQL
.
7. ,
,
.
143
(authentication)
8.
. ,
.
, .
9.
, .
.
144
7.4
1932
2006. .
, ,
. 1955
1994 .
. (, ,
) .
(web server) .
(web application),
.
(web browser).
1.
[Link] .
2. .
,
.
(
).
7.1 : (: [Link]
[Link]/[Link] )
3.
(. 7.1).
.
145
,
.
7.2 :
4.
7.2 [
].
(1:1, 1:, :)
5. :
.
.
1932 1950
.
7.2, (WHERE)
SELECT
: [Link]
: [Link]
[Link]/el/archive/
: [Link]
146
,
, ., , ., , ., , ., & , . (2002).
, , 1 ,
. , .
: .
s, ., & s, .. (2006). :
. : .
Connolly, T., Begg, C., & Strachan, A. (2006). :
(4 ., . 12)
(. , . , & . , .). : .
Delisle, M. (2012). Mastering phpMyAdmin 3.4 for Effective MySQL Management. Birmingham, UK:
Packt Publishing.
Elmasri, R., & Navathe, S.B. (2011). Fundamentals of Database Systems (6th ed.). Boston, MA:
AddisonWesley.
GarciaMolina, H., Ullman, J.D., & Widom, J. (2009). Database Systems: The Complete Book (2nd
ed.). Upper Saddle River, NJ: Pearson Prentice Hall.
Kofler, M. (2005). The Definitive Guide to MySQL5 (3rd ed.) (D. Kramer, Trans.). New York, NY:
Apress.
Kruckenberg, M., & Pipes, J. (2005). Pro MySQL. New York, NY: Apress.
Ramakrishnan, R., & Gehrke, J. (2003). Database Management Systems (3rd ed.). New York, NY:
McGrawHill.
Silberschatz, A., Korth, H.F., & Sudarshan, S. (2011). Database System Concepts (6th ed.). New
York, NY: McGrawHill.
Silberschatz, ., Korth, . F., & Sudarshan, S. (2011). :
(6 .) (. , .). : ..
Speelpenning, J., Daux, P., & Gallus, J. (2008). Data Modeling and Relational Database Design
(Oracle Course). Oracle Corporation.
Gaurav Vaish, 2013. Getting Started with NoSQL. Packt Publishing
Kristina Chodorow. MongoDB: The Definitive Guide, Second Edition. OReilly Media, Inc.
NoSQL :
Amazon SimpleDB: [Link]
BaseX: [Link]
Cassandra: [Link]
CouchDB: [Link]
Google Datastore: [Link]
HBase: [Link]
MemcacheDB: [Link]
MongoDB: [Link]
Neo4j: [Link]
Redis: [Link]
ACID [Link]
147
148