一、数据库
-
Oracle,MySQL,H2(单元测试,内存数据库),NoSQL(一类数据库Not only SQL) 面对的是对象,键值对
-
data,database,databaseSoft,DBMS,databaseService
二、数据库模型
-
关系型数据模型
-
Oracle
-
MySQL
-
SQLServer
-
-
非关系型数据模型
-
H2
-
Redis
-
MongoDB
-
三、关系型数据库
关系模型中主要有关系模式和关系两个概念,关系就是关系模式在某一时刻的状态或内容,关系模式是静态的稳定的,关系是动态的,随着时间变化而变化的,因为关系操作在不断的更新着数据库中的数据。 在关系型数据库出现前有网状数据库和层次数据库,用户在操作数据前要明确指定数据的位置和路径,需要明确数据的结构。关系型数据库中,用户操作数据时是非过程化的,不需要指定路径,由DBMS自己优化完成(Database Management System) 关系模型中无论是实体还是实体间的联系均由单一的结构类型——关系来表示。在实际的关系数据库中的关系也称表。一个关系数据库就是由若干个表组成。
-
什么是关系模型
关系模型是指用二维表的形式表示实体和实体间联系的数据模型。
四、概念
-
实体:现实中的具体事物或关系,如:学校,学生,成绩信息
-
表:实体在数据库中的表现
-
行:表格中的一条记录
-
列:组成行的一个属性
-
主键:能唯一区分表中的某一行,每个表都有主键
-
外键:其他表的主键在当前表中的列
五、数据库的设计
-
给出需求doc,把需要文档抽象出实体,把实体创建表格
-
doc->UML->表->Java
-
doc中找出实体,实体起个名字,college,属性id,name,remark
-
院系和专业,院系包含专业,院系表(院系实体),专业表(专业实体),两张表中相关的字段建立关系(关系实体)。
id | name |
---|---|
1 | 电子系 |
2 | 计算机系 |
id | name | college(外键) |
---|---|---|
1 | 网络工程 | 2 |
2 | 信息管理 | 2 |
-
中间表:他不是具体的一个独立的表,更多的是保存一个关系的表
六、三范式
-
作用:节省空间,主要是在三范式节省空间,表中只有别的表的一个外键,没有多余的字段
-
一范式:字段不可拆分
-
二范式:表中要有主键
-
三范式:表中不能有别的表的非主键列
-
还有巴斯科德范式,第四范式,第五范式
-
反三范式:
-
专门给表中增加其他表中的非关键字段,来提高查询效率,但是维护效率不高,因为要同时维护多张有关的相关数据,占用空间也多
-
七、数据库的约束
-
作用:为了保证数据的有效性,从而保证了数据的安全性
-
约束的类型
-
主键约束:唯一确定一条记录,记录不重复,不能为空
-
唯一约束:唯一确定一条记录,记录不重复,可以为空
-
默认约束:有些列不能为空,必须有值,但客户可能忘记赋值,此时用默认约束强制给空的记录赋值一个默认值,保证数据的有效性,完整性。如:性别
-
检查约束:让数据有效,不能出现意外的数据
-
外键约束
-
八、DBA常用操作
-
管理员登录
-
解决权限不足问题
找到Oracle的安装目录,如:F:\app\DELL\product\11.2.0\dbhome_1\database这个目录下的一个文件oradba.exe,在文件上右键选择以管理员身份运行即可解决权限不足的问题。
-
输入命令
sqlplus / as sysdba
-
-
创建用户
-
create user user1 identified by user1;
-
删除用户:drop user user1;
-
如果user1下已经有用户新建的对象,这样删除会失败,要加一个参数:
-
drop user user1 cascade;
-
-
-
权限设置
-
刚创建的用户没有任何权限,不能登录,不能操作数据库
-
grant...to...分配权限
-
grant CREATE SESSION to user1;(创建会话的权限)
-
grant connect to user1;
-
grant resource to user1;
-
-
revoke...from...收回权限
-
revoke connect from user1;
-
revoke resource from user1;
-
-