数据库与SQL语言 知识点总结
2017-08-31 09:20
295 查看
数据库知识
数据库系统DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统。一个典型的数据库系统包括数据库、硬件、软件(应用程序)和数据库管理员(DBA)4个部分。
根据计算机的系统结构,DBS分成集中式、客户/服务式、并行式、分布式。
E-R模型
数据库逻辑结构设计中,将E-R模型转换为关系模型应遵循相关原则。对于3个不同实体集和它们之间的多对多联系m:n:p,最少可转换为 4 个关系模式。分析:将E-R模型转换为关系模型的规则如下
-一个实体型转换为一个关系模式,实体属性就是关系属性,实体码就是关系码。
-一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
-一个1:n联系可以转换成一个独立的关系模式,也可以与任意n端对应的关系模式合并。如果转换为一个独立的模式,则与该联系相连的各实体的码,以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。如果与n端实体对应的关系模式合并,则需要在该关系模式的属性中加入1端关系模式的码和联系本身的属性。
-一个m:n联系转换为一个独立的关系模式,与该联系相连的各实体的码,以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
-3个以上实体间的一个多元联系可以转换为一个独立的关系模式,与该联系相连的各实体的码,以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
数据分片
在分布式数据库的垂直分片中,为保证全局数据的可重构和最小冗余,分片满足的必要条件是: 对于任一分片,总存在另一个分片能够和它进行无损连接。分析:数据分片分类如下
-水平分片:按一定的条件将关系按行(水平方向)分为若干个相交的子集,每个子集为关系的一个片段。
-垂直分片:将关系按列分为若干个子集。因此为保证全局数据的可重构和最小冗余,分片满足的必要条件是对于任一分片,总存在另一个分片能够和它进行无损连接。
-导出分片:指导出水平分片,即水平分片的条件不是本身属性的条件而是其他关系的属性条件。
-混合分片是指按上述3种分片方式得到的片段,继续按另一种方式分片。
数据库系统原理
数据库系统的3级模式:外模式、模式、内模式。网络模型、层次模型、关系模型是常用的几种基本数据模型。
数据模型是数据库系统的核心和基础,是严格定义的一组概念的集合。这些概念精确描述了系统的特性。动态特性和完整性约束条件。因此数据模型是由数据结构、数据操纵和完整性约束3个要素组成。
实体是指客观存在并可相互区别的事物,联系是指组成实体的各属性之间的联系,属性是实体所具有的某一特性,这都是概念模型中涉及的几个基本概念。
视图
通过重建视图能够实现AA 数据逻辑独立性 B数据物理独立性 C程序逻辑独立性 D 程序物理独立性
分析:数据库系统的3级模式中,视图对应着外模式。外模式是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,对视图的重建相当于修改外模式,故重建视图能够实现数据的逻辑独立性。
关系数据库
关系数据库是表的集合,其结构是由关系模式定义的。分析:关系模型是目前最常用的数据模型之一。关系数据库系统采用关系模型作为数据的组织方式,在关系模型中用表结构表达实体集,以及实体集之间的关系,其最大特色是描述的一致性。
关系模型中,实体及实体间的联系都是用关系来表示的。关系数据库也有型和值之分。关系数据库的型称为关系数据库模式,是对关系数据库的描述,是关系模式的集合。关系数据库的值也称为关系数据库,是关系的集合。关系数据库模式与关系数据库通常统称为关系数据库。
关系模式/关系运算P237~P241
对查询来说,要判断哪个查询的效率最高,在得到同样结果的情况下,所用时间最少。即是求所用步骤最少的操作方法。若有关系模式R(A,B,C)和S(C,D,E),则有如下关系代数:
分析:给定的4个选项中,其含义都是求B<’2013’且E=80的AD列,所以E1=E2=E3=E4.
E1vs E2:操作方式相似,但是E2中,由于R和S模式先做出选择,所以R*S得到更少的结果,由此E2效率高于E1。
E3vs E4:操作方式相似,但是E3中,由于R和S模式先做了选择,所以R和S的连接得到更少结果,由此E3效率高于E4。
E3vs E2:操作相似,顺序相似。但不同的是R*S和R自然连接S。根据定义知道,自然连接要取消重复列,在该题中R自然连接S后就要取消一个C列,所以自然连接效率比E2高。
关系数据库中的运算有投影、选择、连接、除法和外连接。它们是关系代数最基本的操作,也是一个完备的操作集。在关系代数中,由5种基本代数操作经过有限复合的式子称为关系代数运算表达式。表达式的运算结果仍是一个关系,可以用关系代数表达式表示各种数据查询和更新处理操作。
第一项,选择和投影在数据操作中的先后顺序是会影响结果的,因为在等式右边的表达式先做投影,如果在数据操作中的先后顺序是会影响结果的,因为在等式右边的表达式先做投影,如果F条件中含有A1、A2之外的字段,那么就没有起到条件限制的作用。
第二项,因没有指定条件运算F所涉及的属性,其结果也不一定正确。假设E1和E2都只有2个属性,则有4个属性,如果F为2<3,则不能反映在右边的式子中。
第三项,分别对两个关系进行选择运算,选出满足条件的元组,然后求差。和先求差,然后在差中做选择运算,其结果是一致的。
第四项,因为是自然连接,在右边的式子中,先求投影,肯定把公共属性去掉了,连接不成立。
两个关系R和S进行自然连接时,选择两个关系R和S公共属性上相等的元组,去掉重复的属性列构成新关系。这样,关系R中的某些元组有可能在关系S中不存在公共属性值上相等的元组,造成关系R中这些元组的值在运算时舍弃了;同样关系S中的某些元组也可能舍弃。
左外连接:R和S进行自然连接时,只要把R中舍弃的元组放到新关系中。
右外连接:R和S进行自然连接时,只把S中舍弃的元组放到新关系中。
完全外连接:R和S进行自然连接时,把R和S中舍弃的元组都放到新关系中。
数据不一致
并发操作造成数据不一致的主要原因是破坏事物的隔离性,为了避免不一致性的发生,必须用正确的方式调度并发操作,使一个事物的执行不受其他事物的干扰,这就是并发控制。Eg:火车票2个代售点分别售出2张票,但是数据库里的剩余票数却只减了2张,造成数据的不一致,原因是丢失了某售票点修改。可以通过加锁来解决这个问题。
数据库转储
分类有海量转储和增量转储,而每一种方式又可以在两种状态下进行,共分为4类:-动态海量转储,数据库运行时转储全部数据库。
-动态增量转储,数据库运行时转储上一次转储后更新过的数据。
-静态海量转储,数据库停止运行时转储全部数据库。
-静态增量转储,数据库停止运行时转储上一次转储后更新过的数据。
函数依赖
关系模式R属性集为{A,B,C},函数依赖集F={AB->C,AC->B,B->C},则R属于 3NF。分析:对于给定的关系R(U,F),U={A1,A2……An},F是R的函数依赖集,可将其属性分为4类。
-L类:只出现在F的函数依赖左部的属性。
-R类:只出现在F的函数依赖右部的属性。
-LR类:在F的函数依赖左右两边都未出现的属性。
-NLR类:在F的函数依赖左右两边都出现的属性。
判断方法如下:
-若X是L类属性,则X必为R的任一候选码的成员,若,则X必为R的唯一候选码。
-若X是R类属性,则X不在R的任一候选码当中。
-若X是NLR类属性,则X必为R的任一候选码当中。
-若X是L类和NLR类属性组成的属性集,且,则X必为R的唯一候选码。
关系模式
一个实体转换为一个关系模式,实体的属性就是关系的属性。实体的属性就是关系的属性。实体的码就是关系的码。一个联系转化为一个关系模式,与该联系相连的各实体的码以及联系的属性转化为关系的属性,该关系的码则有3种情况。若联系为1:1,则每个实体的码均是该关系的候选码。
若联系为1:你,则关系的码为n端实体的码,关系的外码是1端的码。
若联系为m:n,则关系的码为诸实体码的组合,外码是各个实体的码。
数据挖掘
目的:从已知的大量数据中发现潜在的规则。
数据挖掘又称只是,广义来说,就是从巨大的数据库中提炼出外码感兴趣的东西,或者提炼出不易观察或断定的关系,最后给出一个有用的并可以解释的结论;简单说就是在数据中发现模式、知识或数据间的关系。SQL
SQL是用于对存放在数据库中的数据进行组织、管理和检索的工具,是关系数据库的高级语言。SQL语言特征如下:-简单易用
-非过程化的语言
-处理集合的语言
-统一语言
-通用语言
sp_addtype
Q:在数据库表Library中创建一个用户定义的数据类型Email,其基于的系统数据类型是边长为30的字符,不允许为空.分析:sp_addtype{type},[,system_data_type][,'null_type'],其中type是用户自定义的数据类型名称,system_data_type是系统提供的数据类型,null_type表示该数据类型是如何处理空值的,必须用单引号引起来。
USE Library GO sp_addtype Email,'vacchar(30)','NOT NULL' GO
AND
Q:某销售信息表t_sale中查询供应商S_SUPPLIER是“HS公司”、运输费用S_TRANS小于10并且销售货物名称S_TITLE包含“HP”字符的销售货物信息。
分析:在一个where子句中,可以同时使用多个and语句连接多个查询条件。此时,必须满足所有的查询条件记录,才能够查询出所需的数据信息。
select * from t_sale where s_supplier='HS公司' and s_trans<10 and s_title like '%HP%'
IN
Q:使用SQL语句查询图书信息表T_BOOKINFO中的图书编号B_ID,图书名称B_NAME,出版社名称B_PUBLISH,出版日期B_DATE,作者B_AUTHOR和图书价格B_VALUE字段,并且作者是“张三”或者“李四”的图书信息。SELECT B_ID,B_NAME,B_PUBLISH,B_DATE,B_AUTHOR,B_VALUE FROM T_BOOKINFO WHERE B_AUTHOR IN(‘张三’,‘李四’)
ADD
Q:向员工信息表t_employ中添加职务E_Duty列,并且采用NOTNULL约束。
ALTER TABLE t_employ ADD E_Duty CHAR(10) NOT NULL
创建视图
Q:创建一个视图view_empInfo,使得在该视图中显示员工信息表t_employ中的员工姓名e_name,工号e_nums和部门e_depart信息,以及显示员工工资表t_salary中对应员工每个月的工资信息,数据表中的其他信息不显示。分析:视图是从一个或多个表或者视图中导出的表,其结构和数据是建立在对表的查询基础上的。与真实表一样,视图包括多个被定义的数据列和多个数据行,但从本质上讲,这些数据列和数据行来自其引用的表。视图的创建主要是由CREATEVIEW关键字来实现。创建视语法结构如下:
CREATE VIEW view_name[(column1,column2,……)] AS (SELECT_statement [WITH[CASCADED|LOCAL]CHECK OPTION])
view_name:创建视图名称。
[(column1,column2....)]:可选项,默认时为子查询结果中的字段名。
CHECKOPTION:保证只有视图可读的数据才可以由视图插入、更新或删除。这一子句只能用于对基表进行更新视图。
CASCADED:只对当前视图和所有视图执行选项检查,适用于嵌套的视图。
LOCAL:此选项只对当前视图执行选项检查,适用于嵌套的视图、
create VIEW view_empInfo
AS
SELECT a.e_name,a.e_nums,a.e_depart,b.s_yf,b,s_jje
FROM t_employ a,t_employ b
where a.e_nums=b.s_gh
补充:在SQL Server数据库中,可以创建的视图包括标准视图,索引视图和分区视图。
标准视图组合了一个或多个表中的数据,主要用于加强数据和简化操作。加强数据指用户能够着重于他们所感兴趣的特定数据和所负责的特定任务,不必要的数据或敏感数据可以不出现在视图中。简化操作是指可以将常用连接,UNION查询和SELECT查询定义为视图,以使用户不必在每次对该数据执行附加操作时指定所有条件和条件限定。
索引视图:被具体化了的视图,即它已经过计算并存储。可以为视图创建索引,即对视图创建一个唯一的聚集索引。索引视图可以提高某些类型查询的性能,尤其适用于聚合许多行的查询,但不太适用于经常更新的基本数据集。
分区视图:在一台或多台服务器间水平连接一组成员表中的分区数据。这样,数据看上去如同来自一个表,连接同一个SQLSERVER实例中成员表的视图是一个本地分区视图。
添加主键约束
Q:假设在数据库中已经存在酒店管理系统中的客房信息表ROOMINFO,给该信息表中的ROOMID列添加主键约束。分析:主键约束不仅可以在创建表的同时创建,也可以在修改数据表时添加。设置成的主键约束的列中不允许有空值。
ALTER TABLE ROOMINFO ADD CONSTRAINT PF_ROOMINFO PRIMARY KEY(ROOMID)
查询语句
Q:查询员工信息表T_EMPLOYEEINFO中姓名为MARK的员工信息。SELECT * FROM T_EMPLOYEEINFO WHERE NAME='MARK'
分析:where子句获取FROM子句返回的结果集,并应用WHERE子句中定义搜索条件对结果集进行筛选,符合搜索条件的数据作为查询结果的一部分返回,不符合搜索条件的从结果中删除。
相关文章推荐
- 数据库原理_知识点总结
- 数据库及SQL----常用知识点总结
- 数据库SQL语言语法总结5---视图
- Oracle 数据库基础知识点总结(一)
- 数据库精华知识点总结(1)—数据库的三层模式和二级映像,E-R(实体联系图)图,关系模型
- 黑马程序员之SQL学习笔记:数据库基础知识点学习总结
- 数据库原理 知识点总结
- 数据库原理 知识点总结
- 数据库知识点总结(2)
- 数据库知识点总结
- Oracle 11g 第一章知识点总结——数据库简介 简单查询
- (原创)大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 决策树分析算法)
- (原创)大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 聚类分析算法)
- (原创)大数据时代:基于微软案例数据库数据挖掘知识点总结(结果预测篇)
- 数据库原理 知识点总结
- 传智播客数据库开发和ADO.NET知识点总结
- ADO.NET和数据库 各种实用知识点总结 一
- 数据库知识点总结(发展,约束,索引,触发器,连接池,视图,事务)
- (原创)大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 神经网络分析算法)
- 数据库事务知识点总结