关系型数据库通过外键关联来建立表与表之间的关系,非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定 比如有一个学生的数据:
姓名:张三;性别:男;学号:12345;班级:二年级一班
还有一个班级的数据:
班级:二年级一班;班主任:李四
关系型数据库中,我们创建学生表和班级表来存这两条数据,并且学生表中的班级存储的是班级表中的主键。
非关系型数据库中,我们创建两个对象,一个是学生对象,一个是班级对象,用java来表示就是:
class Student {
String id;
String name;
String sex;
String number;
String classid;
}
class Grade {
String id;
String name;
String teacher;
}
通过设置Student类的classid等于Grade类的id来建立这种关系;
非关系型数据库中,我们查询一条数据,结果出来一个数组,关系型数据库中,查询一条数据结果是一个对象。
第二篇:关系数据库总结
总 结
已知R的属性有A1,A2,……,An 和B1,B2,……,Bm;
关系S的属性有B1,B2,……,Bm 和C1,C2,……,C?
a. Projection
关系代数的表示:R[A1,A2,……,An]
SQL语句的表示:SELECT A1,A2,……,An FROM R
b. Selection
关系代数的表示:R Where C
SQL语句的表示: SELECT * FROM R WHERE C
c. Production
关系代数的表示:R?S
SQL语句的表示: SELECT * FROM R ,S
等价的写法:
SELECT A1,A2,……,An, R.B1, R. B2,……, R. Bm, S.B1, S. B2,……, S. Bm, C1,C2,……,C? FROM R ,S
d. Join
关系代数的表示:R ? S
SQL语句的表示:
SELECT A1,A2,……,An, R.B1, R. B2,……, R. Bm, C1,C2,……,C?
FROM R ,S
WHERE R.B1= S.B1 AND R. B2= S. B2 AND …… AND R. Bm =S. Bm 已知R的属性有A1,A2,……,Am;关系S的属性有A1,A2,……,Am e. Union
关系代数的表示:R? S
SQL语句的表示: SELECET * FROM R
UNION
SELECT * FROM S
f. difference
关系代数的表示:R-S
SQL语句的表示:
SELECT * FROM R
WHERE NOT EXIST (SELECT * FROM S
WHERE R.A1= S.A1 AND R. A2= S. A2 AND …… AND R. Am =S. Am) g. Intersection
关系代数的表示: R ? S
SQL语句的表示:SELECT * FROM R
WHERE EXIST (SELECT * FROM S
WHERE R.A1= S.A1 AND R. A2= S. A2 AND …… AND R. Am =S. Am) 如果是单列
SELECT * FROM R
WHERE COL IN (SELECT COL FROM S )
或者
SELECT * FROM R
WHERE COL =SOME (SELECT COL FROM S )
三种形式:IN, ?, EXIST
a.2种形式expr in() ; expr not in()
b.12种形式
expr >some/any() ; expr >=some/any() ; expr =some/any() ;
expr <some/any() ; expr < =some/any() ; expr <>some/any() ;
expr >all() ; expr >=all() ; expr =all() ;
expr <all() ; expr < =all() ; expr <>all() ;
c. 2种形式 Exist () ;not Exist ()
等效关系:
a. expr in() 等价于 expr =some/any()
b. expr not in() 等价于expr <>all()
c. select * from R where col = some/any( select col from S )等价的exist语句为: select * from R where exist (select * from R.col =S.col)
d. Select * from R where col > (>=,<,<=,<>) some/any( select col from S )等价的exist语句为:
select * from R where exist (select * from R.col >S.col)
e. select * from R where col <>all ( select col from S )等价的exist语句为: select * from R where not exist (select * from R.col =S.col)
f. select * from R where col >(>=,<,<=,=)all ( select col from S )等价的exist语句为:
select * from R where not exist (select * from R.col