1.1 数据的物理独立性是指当数据库的内模式发生改变时,数据的逻辑结构不变。为了保证应用程序能够正确执行,需要通过修改(概念)模式/内模式之间的映像。
数据的逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构发生变化后,用户程序也可以不修改。但是为了保证应用程序能够正确执行,需要修改外模式/(概念)模式之间的映像。
1.2 关系规范化在数据库设计的逻辑设计阶段进行。
1.3 数据库设计通常分为6个阶段
1:需求分析:分析用户的需求,包括数据、功能和性能需求;
2:概念结构设计:主要采用E-R模型进行设计,包括画E-R图;
3:逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;
4:数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径;
5:数据库的实施:包括编程、测试和试运行;
6:数据库运行与维护:系统的运行与数据库的日常维护。
1.4 数据库管理系统的安全措施有3个方面:
①权限机制:通过权限机制,限定用户对数据的操作权限,把数据的操作限定在具有指定权限的用户范围内,以保证数据的安全。在标准SQL中定义了授权语句GRANT来实现权限管理。
②视图机制:通过建立用户视图,用户或应用程序只能通过视图来操作数据,保证了视图之外的数据的安全性。
③数据加密:对数据库中的数据进行加密,可以防止数据在存储和传输过程中失密。
1.5 典型的启发式规则
(1) 选择运算应尽可能先做
在优化策略中这是最重要、最基本的一条。
(2)把投影运算和选择运算同时进行
如有若干投影和选择运算,并且它们都对同一个关系操作,则可以在扫描此关系的同时完成所有的这些运算以避免重复扫描关系。
(3) 把投影同其前或其后的双目运算结合起来,没有必要为了去掉某些字段而扫描一遍关系。
(4) 把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算,连接特别是等值连接运算要比同样关系上的笛卡尔积省很多时间。
(5) 找出公共子表达式
如果这种重复出现的子表达式的结果不是很大的关系
并且从外存中读入这个关系比计算该子表达式的时间少得多
则先计算一次公共子表达式并把结果写入中间文件是合算的。
当查询的是视图时,定义视图的表达式就是公共子表达式的情况
1.6 共享锁(S锁)又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S 锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。
排他锁(X锁)又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。这保证了其他事务在T释放A上的锁之前不能再读取和修改A。
JDBC是java技术中访问数据库的方式,也是目前用Java技术实现的基于Web的应用的数据库访问方式。
COM是一种组件技术;
CGI是一种网络应用技术;
XML是一种格式定义;
若X->Y,X->Z,则X->YZ为F所蕴涵是Armstrong公理系统的合并规则;
若X->Y,WY->Z,则XW->Z为F所蕴涵是Armstrong公理系统的伪传递律;
若X->Y,Y-Z为F所蕴涵,则X->Z为F所蕴涵是Armstrong公理系统的传递律;
若X->Y为F所蕴涵,且Z⊆U,则XZ->YZ为F所蕴涵是Armstrong公理系统的增广律;
Data Extraction:数据抽取。
OLAP(On-Line Transaction Pressing):联机事务处理过程,也称面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。
DM(Data Mining)和OLAP同为分析工具,其差别在于OLAP提供用户一个便利的多维度观点和方法,以有效率地数据进行复杂的查询动作,其预设查询条件由用户预先设定,而数据挖掘则能由资讯系统主动发掘资料来源中未曾被察觉的隐藏资讯,透过用户的认知以产生信息。
ETL(Extract-Transform-Load)用来描述将数据从来源端经过抽取(Extract)、转换(Transform)、加载(Load)至目的端的过程。ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。
分布式数据库基本概念:
分布式数据库基本概念:
(1)共享性:是指数据存储在不同的节点数据共享;
(2)自治性:指每节点对本地数据都能独立管理;
(3)可用性:是指当某一场地故障时,系统可以使用其他场地的副本而不至于使整个系统瘫痪;
(4)分布性:是指数据在不同场地上的存储。
标准SQL授权的语句格式如下:
GRANT <权限>[,<权限>]......[ON<对象类型><对象名>]TO <用户>[,<用户>]......
[WITH GRANT OPTION];
若在授权时指定了WITH GRANT OPTION,那么获得了权限的用户还可以将权限赋给其他用户。
事务处理相关知识:
① 原子性
事务的原子性是指事务必须是一个原子的操作序列单元。事务中包含的各项操作在一次执行过程中,只允许出现两种状态之一,要么都成功,要么都失败
任何一项操作都会导致整个事务的失败,同时其它已经被执行的操作都将被撤销并回滚,只有所有的操作全部成功,整个事务才算是成功完成
② 一致性(Consistency)
事务的一致性是指事务的执行不能破坏数据库数据的完整性和一致性,一个事务在执行之前和执行之后,数据库都必须处以一致性状态。
比如:如果从A账户转账到B账户,不可能因为A账户扣了钱,而B账户没有加钱
③ 隔离性
事务的隔离性是指在并发环境中,并发的事务是互相隔离的,一个事务的执行不能被其它事务干扰。也就是说,不同的事务并发操作相同的数据时,每个事务都有各自完整的数据空间。
一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务是不能互相干扰的
④ 持久性(Duration)
事务的持久性是指事务一旦提交后,数据库中的数据必须被永久的保存下来。即使服务器系统崩溃或服务器宕机等故障。只要数据库重新启动,那么一定能够将其恢复到事务成功结束后的状态。事物一旦提交,其对数据库的影响是永久的,即使系统发生故障也不受影响。提交可以看做系统对用户的承诺,即当执行COMMIT之后,用户可认为事物已完成,故障问题有DBMS负责。
属性冲突:属性值的类型不同或取值范围不同或取值集合不同。
命名冲突:不同意义的对象名称相同
结构冲突:例如“课程”在某一局部中被当做实体,在另外一局部中被当做属性;
1.14