导图社区 数据库
《计算机科学导论》之数据库知识总结,包括数据库体系结构、数据库模型、关系型数据库模型、关系的操作等内容。
编辑于2021-11-23 10:58:2714.数据库
引言
定义
数据库是一个组织内被应用程序使用的逻辑相一致的相关数据的集合。
数据库的优点
冗余较少
避免不一致性
效率
数据完整性
机密性
数据库管理系统Database Management System
定义
数据库管理系统(DBMS)是定义、创建、维护数据库的一种工具。DBMS也允许用户来控制数据库中数据的存取。
硬件
硬件是指允许物理上存取数据的计算机硬件系统。如用户终端、硬盘、主机和工作站。
软件
软件是指允许用户存取、维护和更新物理数据的实际程序。另外,软件工具还可以控制哪些用户可以对数据库中的哪部分数据进行存取。
数据
数据库中的数据存储在物理存储设备上。数据是独立于软件的一个实体,可在不改变物理数据和存储方式的情况下更换所应用的软件。
用户
最终用户,指直接从数据库中获取信息的用户。
数据库管理员(DBA),可以控制其他用户以及他们对数据库的存取。
普通用户,使用部分数据库的有限的存取。
应用程序,应用程序需要存取和使用数据。
规程
必须明确定义的数据库用户必须遵循的规程或规则的集合。
常见的DBS
Oracle
MySQL
SQLServer
关系型数据库
MongoDB
NoSQL
非关系型数据库
其他数据库模型
不完全的分布式数据库
在分布式数据库中,数据是本地化的。本地使用的时刻存储在相应的站点上。
站点对存储的本地数据具有完全控制权,还存在一个全局的控制通过英特网或广域网。
复制式的分布式数据库
在复制的分布式数据库中,每个站点都有其他站点的一个完全副本。
对一个站点的修改会在其他站点的副本数据上重复。
面向对象数据库
面向对象数据库允许应用存取结构化数据。
XML
常用作面向对象数据的查询语言是XML(Extensible Markup Language)。
数据库体系结构
内层
内层与硬件交互,规定数据存取方法和存储设备间数据传输方法。
概念层
概念层定义数据的逻辑视图。数据库管理系统的主要功能都在该层。
外层
外层直接与用户(最终用户或应用程序)交互。将来自概念层的数据转化为用户所熟悉的格式和视图。
数据库模型
层次模型
数据被组织为一颗倒置的树。已过时。
网状模型
实体通过图来组织,部分实体可通过多条路径访问。
关系模型
将数据组织成二维表、即关系。
关系型数据库模型
在关系数据库管理系统(ROBMS)中,数据是通过关系的集合来表示的。
关系就是二维表,数据的外部视图就是关系或表的集合。
数据的物理存储与数据的逻辑组织的方式毫无关系。
关系的特征
名称
在关系数据库管理系统中,每一种关系具有唯一的名称。
属性
关系中的每一列都成为属性,属性在表中是列的头。
元组
关系中的行叫做元组。元组定义了一组属性值。关系中元组的个数叫做关系的基数。
关系的操作
结构化查询语言
插入
insert into RELATION-NAME values (... , .... , ...)
insert into COURSES values ("CIS52","TCP/IP",6)
删除
delete from RELATION-NAME where criteria
delete from COURSES where No="CIS19)
更新
update RELATION-NAMEset attributel=value1,attribute2=value2,...where criteria
update COURSESset Unit = 6where No = "CIS51"
选择
select *from RELATION-NAMEwhere criteria
select *from COURSESwhere Unit = 5
投影
select attribute-listfrom RELATION-NAME
select No,UNITfrom COURSES
连接
select attribute-listfrom RELATION1,RELATION2where criteria
select No,Course-Name,Unit,Professorfrom COURSES,TAUGHT-BYwhere COURSE.No = TAUGHT-BY.No;
并
select *from RALATION1unionselect *from RELATION2
select *from CIS15-ROsterunionselect *from CIS52-Roster
交
select *from RALATION1intersectionselect *from RELATION2
select *from CIS15-Rosterintersectonselect *from CIS52-Roster
差
selsect *from RELATION1minusselect *from RELATION2
selsect *from CIS15-Rosterminusselect *from CIS52-Roster
数据库设计
实体关系模型
实体关系(E-R)图
矩形表示实体集;椭圆表示属性;菱形表示关系集;线连接属性和实体、实体集和关系集。
从E-R图到关系
实体集上的关系,在E-R图中的每个实体集都可以创建一个关系,这些关系具有n个列,对应这个集合所定义的n个属性。
关系集上的关系,对于E-R图中的每个关系集,都可以创建一个关系(表),这个关系中有一个列对应于这个关系所涉及的实体集的关键字,如果关系有属性,这个关系还可以有关系本身的属性对应的列。
规范化
规范化是一个处理过程,通过此过程给定的一组关系转化成一组具有更坚固结构的新关系。
第一范式(1NF)
第一范式(First Normal Form,1st NF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程称为规范化处理。
如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF(即R符合第一范式)。
第二范式(2NF)
第二范式(Second Normal Form,2nd NF)是指每个表必须有且仅有一个数据元素为主关键字(Primary key),其他数据元素与主关键字一一对应。
若关系模式R∈1NF(即R符合第一范式),并且每一个非主属性都完全依赖于R的码,则R∈2NF(即R符合第二范式)。
第三范式(3NF)
第三范式(Third Normal Form,3rd NF)就是指表中的所有数据元素不但要能惟一地被主关键字所标识,而且它们之间还必须相互独立,不存在其他的函数关系。
若关系模式R∈3NF(即R符合第三范式),则每一个非主属性既不部分依赖于码也不传递依赖于码。
Oracle数据库
角色
三个常用的系统用户
scott(一个数据库的普通用户)
conn scott/tiger
manager(数据库管理员)
conn system/manager
sys(数据库对象的拥有者权限最高)
conn sys/change_on _install as sysdba
系统权限
常见的系统权限
CREATE SESSION 创建会话
CREATE SEQUENCE 创建序列
CREATE SYNONYM 创建同名对象
CREATE TABLE 在用户模式中创建表
CREATE ANY TABLE 在任何模式中创建表
DROP TABLE 在用户模式中删除表
DROP ANY TABLE 在任何模式中删除表
CREATE PROCEDURE 创建存储过程
EXECUTE ANY PROCEDURE 执行任何模式的存储过程
CREATE USER 创建用户
DROP USER 删除用户
授予用户系统权限
GRANT privilege [, privilege...] TO user [, user| role, PUBLIC...]
[WITH ADMIN OPTION];
PUBLIC 所有用户
WITH ADMIN OPTION 使用户同样具有分配权限的权利,可将此权限授予别人
查看系统权限
dba_sys_privs --针对所有用户被授予的系统权限
user_sys_privs --针对当前登陆用户被授予的系统权限
回收系统权限
REVOKE {privilege | role} FROM {user_name | role_name | PUBLIC}
对象权限
不同的对象具有不同的对象权限,对象的拥有者拥有所有权限,对象的拥有者可以向外分配权限.关于授予系统权限与授予对象权限的语法差异:授予对象权限时需要指定关键字ON,从而能够确定权限所应用的对象.对于表和视图可以指定特定的列来授权。
3种标准角色
1. CONNECT Role(连接角色)
CONNECT是使用Oracle的简单权限,这种权限只有在对其他用户 的表有访问权时,包括select、insert、update和delete等,才会变得有意义。拥有CONNECT role的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym )、会话(session)和与其他数据库的链(link)。
2. RESOURCE Role(资源角色)
更可靠和正式的数据库用户可以授予RESOURCE role。RESOURCE提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。
3. DBA Role(数据库管理员角色)
DBA role拥有所有的系统权限----包括无限制的空间限额和给其他用户授予各种权限的能力。SYSTEM由DBA用户拥有。下面介绍一些DBA经常使用的典型权限。
A.grant(授权)命令
下面对刚才创建的用户user01授权,命令如下:
grant connect, resource to user01;
B.revoke(撤消)权限
已授予的权限可以撤消。例如撤消(1)中的授权,命令如下:
revoke connect, resource from user01;
一个具有DBA角色的用户可以撤消任何别的用户甚至别的DBA的CONNECT、RESOURCE 和DBA的其他权限。当然,这样是很危险的,因此,除非真正需要,DBA权限不应随便授予那些不是很重要的一般用户。
撤消一个用户的所有权限,并不意味着从Oracle中删除了这个用户,也不会破坏用户创建的任何表;只是简单禁止其对这些表的访问。其他要访问这些表的用户可以象以前那样地访问这些表。
角色管理
show user; 显示当前用户create role myrole; 创建一个角色grant create session to myrloe; 给角色授予session权限grant create table to myrole; 给角色授予表操作权限create user zhangsan identified by zhangesan; 创建一个用户grant myrole to zhangsan; 把角色授予给用户sqlplus zhangsan/zhangsan 用户登录drop role myrole; 删除角色grant unlimited tablespace to myrole; 这个权限比较大,不能通过角色授权,只能授权给用户
限制用户
用户加锁 -- alter user 用户名 account lock
用户解锁 -- alter user 用户名 account unlock
用户口令即刻失效 -- alter user 用户名 password expire
删除用户
drop user 用户名 [CasCade]CasCade表示删除用户所有对象
数据仓库(Data Warehouse)
面向主题的、集成的、非易失的、且随时间变化的数据集合,用于支持管理决策
组成
数据源
是数据仓库系统的基础,是整个系统的数据源泉。
通常包括企业内部信息(存放于RDBMS中的各种业务处理数据和各类文档数据)和外部信息(各类法律法规、市场信息和竞争对手的信息)。
数据的存储与管理
是整个数据仓库系统的核心
针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。
OLAP服务器
对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。
ROLAP(关系型在线分析处理)基本数据和聚合数据均存放在RDBMS之中;
RDBMS(Relational Database Management System,关系数据库管理系统)
MOLAP(多维在线分析处理)基本数据和聚合数据均存放于多维数据库中;
HOLAP(混合型线上分析处理)基本数据存放于RDBMS之中,聚合数据存放于多维数据库中。
前端工具
包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以数据挖掘及各种基于数据仓库或数据集市的应用开发工具。