一、数据库模型
-
关系型数据模型:Oracle,MySQL,SQLServer
-
非关系型数据模型:H2,Redis,MongoDB
二、关系模型
-
关系模式:静态的稳定的
-
关系:关系是关系模式在某一时刻的状态或内容,关系是动态的
-
关系模型:关系模型是指用二维表的形式表示实体和实体间联系的数据模型。
三、数据库设计步骤
-
doc->从doc文档中找出实体->将实体和属性转换为表格
-
中间表:不是具体的一个独立的表,更多的是保存一个关系的表
四、三范式
-- 节省空间,主要是在三范式节省空间,表中只有别的表的一个外键,没有多余的字段
-
1NF:字段不可拆分
-
2NF:表中要有主键
-
3NF:表中不能有别的表的非主键列
-
还有巴斯科德范式,第四范式,第五范式
-
反三范式:
-- 专门给表中增加其他表中的非关键字段,来提高查询效率,但是维护效率不高,因为要同时维护多张有关的相关数据,占用空间也多
五、数据库的有效性和安全性如何实现
-
通过约束实现
-
约束的类型
-
主键约束:唯一确定一条记录,记录不重复,不能为空
-
唯一约束:唯一确定一条记录,记录不重复,可以为空
-
默认约束:有些列不能为空,必须有值,但客户可能忘记赋值,此时用默认约束强制给空的记录赋值一个默认值,保证数据的有效性,完整性。
-
检查约束:让数据有效,不能出现意外的数据
-
外键约束:如果依赖的表中没有相应的主键记录,则当前表就无法添加记录,这就是外键依赖,当然要删除依赖表中的记录时,如果记录有被依赖的情况,则要么报错不能删除,要么级联删除当前表中的记录,保证了数据的安全,避免了依赖不存在的问题。
-
-
六、创建用户user_test并分配建表权限
-
创建用户
create user user_test identified by user_test;
-
授予权限
grant connect to user_test;
grant resource to user_test; -
连接
conn user_test/user_test;
-
建表,删表
create table t1(id number);
drop table t1; -
收回权限
revoke connect from user_test;
revoke resource from user_test; -
删除用户
drop user user_test;
-
管理员登录
sqlplus / as sysdba
- 数据库关闭和启动:shutdown immediate,startup