数据库概论期末复习

第一章 绪论

数据:描述事物的符号集合,与语义不可分

数据库:长期存储在计算机内有组织,大量,共享的数据集合。数据库中的数据按照一定的数据模型组织,描述,存储。冗余度小,独立性高,易扩展,可共享。

数据库系统:由数据库,数据库管理系统,应用程序和数据库管理员组成的存储,管理,处理和维护数据的系统

数据库管理系统:是位于用户和操作系统之间的一层数据管理软件,是计算机的基础软件。

 

数据库系统的主要功能:

1.数据库的定义

2.数据库的运行管理

3.数据的存取

3.数据库的创建和维护

 

使用数据库系统的好处:

1.大大提高了应用开发的效率

2.减少了应用程序的维护和修改

3.方便了用户的使用

4.减轻了维护的负担

 

数据集中管理

控制数据冗余

有利于应用程序的开发和维护

 

 

 

 

文件系统与数据库系统的区别和联系

区别:

文件系统:

面向应用程序,共享性低,冗余性高,数据独立性差,整体无结构,

由应用程序控制。

 

数据库系统:

面向现实世界,共享性高,冗余度低,数据独立性高,整体结构化

由数据库操作系统提供对数据的安全性,完整性,并发控制和恢复能力。

 

联系:

文件系统是操作系统的组成部分,而数据库系统在操作系统上是独立的,

但是数据库管理系统是以操作系统为基础,在文件系统上来进行数据的组织和存储

 

举出适合用文件系统而不是数据库系统的例子;

数据的备份,应用程序的临时文件存贮,简单固定的应用程序

 

再举出适合用数据库系统的应用例子。

企业或部门的信息系统

 

 

数据库系统的主要特点:

1.数据结构化

2.数据的冗余性低,共享性高,易扩充

3.数据独立性高

4.数据由DBMS统一管理和控制

 

DBMA的数据控制功能包括

数据的安全性保护

数据的完整性约束

数据的并发性控制

数据的恢复

 

数据库系统的功能:

数据库的定义

数据的存取

数据库的运行管理

数据库的创建和维护

 

数据模型:是对现实世界数据特征的抽象,是数据库系统的核心和基础

数据模型的作用:描述操作系统的静态动态特性和完整性约束条件

三个要素

数据结构

数据操作

数据的完整性约束

 

 

概念模型的作用

信息世界的建模

是现实世界到信息世界的第一层

是数据库设计的得力工具,和用户交流的语言

 

 

实体:现实存在的可以相互区分的事物

实体型:用来刻画相同的实体的实体名及其属性的集合

实体集:相同类型实体的集合

属性:实体具有的某一特性

码:唯一标识实体的属性

实体联系图:(E-R图):表示实体,属性,联系的图

 

3章 关系数据库标准语言SQL

 

关系模型:

以二维表的形式表示实体和实体间关系的数据模型

由关系数据结构,关系操作集合,关系完整性约束三部分组成。

 

关系:一个关系对应一张表

属性:表中的一列

域:属性的取值范围

元组:表中的一行

主码:表中的某个属性组,唯一确定一个元组,

分量:元组的一个属性值

关系模式:对关系的描述

 

一般表示为

关系名(即表名)(属性1,属性2,。。。属性n

 

关系数据模型特点

优点:

1.建立在严格的数学概念的基础上

2.都用关系()表示,数据结构简单,清晰,易懂。

3.存取路径对用户透明,数据独立性更好,安全保密性更好,方便数据库建立

缺点:

1.查询效率低

2.需要优化查询请求,增加开发难度

 

 

关系数据模型特点:

优点

建立在严格的数学概念基础上

都与关系标书,数据结构简单清晰易懂。

存取路径透明,数据独立性高,安全保密性哈,方表数据库建立

 

 

数据库系统组成:

数据库

DBMA

应用程序和用户

管理员

 

SQL语言特点

1.综合统一:3种语言统一

2.高度非过程化:无序了解存取过程

3.面向集合的操作方式

4.以一种语法结构提供两种使用方式:

自含式语言:独立联机交互,

嵌入式语言:嵌入到高级语言中设计

5简单易学

 

 

 

 

SQL的数据定义功能:

定义表,视图,索引

 

基本表:本身独立存在的表,一个关系对应一张表

视图:由一个或几个基本表导出的表,本身不独立存储在数据库中

数据库中只存放了视图的定义,数据存储在导出视图的基本表中

视图概念上与基本表一致,可以像基本表同样操作,在视图上再定义视图

 

 

4章 数据库安全性

数据库的安全性:

保护数据库以防止不合法使用造成数据泄露,更改,破坏

 

数据库安全性与计算机系统安全性的关系:

安全性不是数据库系统独有的

由于大量数据存放和大量用户共享数据,安全性问题在数据库系统中突出。

系统安全保护措施是数据库系统的主要指标

计算机系统与数据库系统,包括操作系统和网络系统是紧密联系,相互支持的。

 

数据库安全性控制的方法和技术

1.用户的标识和鉴别:

系统提供一定的方式让用户标识自己的身份和名称,

当用户请求进入系统时,由系统进行核对身份,让鉴别通过后提供用户系统

的使用权。

2.存取控制:

通过用户权限定义和合法权限检查,确保只有合法权限的用户访问数据库,

未有合法权限的用户无法从数据库中存取数据。

3.视图机制:为不同用户定义视图,视图机制把要保密的数据对无权用户隐藏,

从而自动的提供了一定程度的数据安全保护

4.审计:建立审计日志,把用户对数据库的所有操作自动记录在审计

日志中,数据管理员通过审计跟踪的信息,重现导致数据库现有状况

的一系列事件,找出非法存取的人,时间,内容。

5.数据加密:对存储和传输的数据进行加密处理。

 

自主存取控制方法:

定义各个用户对不同数据对象的存取权限,用户访问数据库时首先

检验用户的存取权限是否合法,防止不合法用户存取数据库数据

强制存取控制:

每一个数据被强制标以一定的密级,每一个用户被强制授予一定的

级别的许可证。系统规定只有某一级别的许可证用户才可以存取某一

密级的数据对象。

 

 

数据库的完整性:

数据的正确性和相容性

 

数据库的完整性是

防止数据库中存在不符合语义的数据所造成的无效操作和错误结果

数据库的安全性是:

保护数据库,防止恶意破坏和非法存取

完整性防范对象是不合语义的数据,

安全性防范对象是非法操作和非法用户

 

完整性约条件:数据库中数据应该满足的语义约束条件。

静态列级约束,静态元组约束,静态关系约束。

动态列级约束,动态元组约束,动态关系约束。

静态列级约束:

数据类型,格式约束,取值范围,空值约束和其他约束。

静态关系约束:实体完整性,参照完整性,函数依赖关系。

动态列级约束:修改列定义、列值时的约束

动态元组约束:修改元组新旧值之间

动态关系约束:加在关系变化前后的限制条件.事务一致性,原子性

 

DBMS完整性控制功能:

1.定义完整性约束

2.检查违约请求

3.违约反应:对违反约束的操作请求采取动作’

 

DBMS实现参照完整性的注意:

1.外码为空

2.删除被参照元组的约束:级联、受限、置空

3.参照关系中的插入约束:受限插入,递归插入

 

修改关系数据库中主码的问题

1.update

2.元组删除

3.唯一非空

4.参照被参照

1.一般不能用update修改关系主码

2.修改主码时要删除该元祖,再把具有新主码值的元祖插入

3.允许修改主码值时,要确保唯一和非空,否则拒绝修改

4.还要区分参照还是被参照关系

 

当操作违反关系数据库中三要素时一般的处理方式

违反实体完整和用户自定义完整的操作拒绝执行

违反参数完整并不简单拒绝,有时根据语义执行附加操作,保证

数据库的正确性

 

 

 

 

 

 

 

 

数据库设计过程:

1. 需求分析

2. 概念结构设计

3. 逻辑结构设计

4. 物理结构设计

5. 数据库实施

6. 数据库运行和维护

 

 

数据库设计过程各个阶段上的设计描述描述:

1. 需求分析:准确了解与分析用户需求(包括数据与处理)。

2. 概念结构设计:通过对用户需求进行综合,归纳,抽象,形成一个独立于具体数据库管理系统的概念模型。

3. 逻辑结构设计:将概念结构转化成某个DBMS所支持的数据模型,并优化。

4. 物理结构设计:为逻辑数据模型选取一个最适合应用的物理结构

5. 数据库实施:运用DBMS提供的数据语言,工具,宿主语言,根据逻辑结构设计和物理结构设计结果建立数据库,编制和调试应用程序,组织数据入库,并尝试运行。

6. 数据库运行和维护:在数据库系统运行过程中对其进行评价,调整和修改

 

 

1. 需求分析:了解和分析用户需求

2. 概念结构设计:通过对用户的需求进行总结归纳,抽象。形成一个独立于DMBS 的概念结构

3. 逻辑结构设计;将概念结构设计转化成某个DBMS支持的数据模型,并进行优化

4. 物理结构设计:给逻辑结构设计选取一个适应应用的物理环境

5. 数据库实施:运用DBMS提供的数据语言,工具,宿主语言,根据逻辑结构设计和物理结构设计建立数据库,编辑和调试应用程序,组织数据入库,尝试运行,

6. 数据库运行和维护:在数据库系统运行时对其进行评价,修改和调整

 

 

 

数据库设计过程中,结构设计部分形成的数据库模式

1. 概念结构设计阶段,形成独立于机器的特点,独立于DBMS的概念模式,E-R

2. 逻辑结构设计阶段,将E-R图转换成具体的DBMS支持的数据模型,如关系模型,形成数据库逻辑模式,然后在基本表的基础上再建立必要的视图,形成数据的外模式。

3. 在物理设计阶段,根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式

 

 

数据库设计过程中,结构设计部分形成的数据库模式:

1:概念结构设计阶段:形成独立与机器特点,独立于DBMSE-R

2. 逻辑结构设计阶段,把E-R图转换成具体的DBMS所支持的数据模型:如关系模型,形成逻辑数据库模式,再在基本表的基础上建立必要的视图,形成数据的外模式

3. 物理结构设计阶段:根据DBMS的特点和具体需要,运行物理存储安排,建立索引,形成数据的内模式。

 

 

数据库设计过程中,各个阶段所形成的数据库模式:

1.概念结构设计阶段,形成独立于DBMS和机器特点的概念模式 E-R

2.逻辑结构设计阶段,将E-R图转化成具体DBMS支持的数据模型,如关系模型,形成逻辑数据库模式,在基本表上建立必要的视图,形成数据外模式。

3.物理结构设计阶段,根据DBMS特点和处理需求,运行物理存储安排,建立索引,形成数据内模式。

 

数据库设计特点:

1. 数据库建设是硬件、软件、干件(技术与管理界面)的结合。

2. 从软件设计的技术角度看,数据库设计应该是和应用系统设计相结合,就是把数据设计和处理设计相结合,

 

数据库设计特点

1. 数据库设计是硬件、软件、干件(技术与管理界面)的结合。

2. 从软件设计角度来看,数据库设计应该和应用系统设计相互结合,就是结构设计和行为设计相互结合,

需求分析阶段的设计目标是什么?

通过详细调查现实世界要处理的对象,充分了解原系统工作概况,明确用户各种需求,然后在此基础上确定新系统的功能。

 

 

需求分析要调查的内容包括:信息要求,处理要求,安全性和完整性要求

1. 信息要求:用户需要从数据库中获得信息的内容和性质,由信息要求可以导出数据要求,即数据库中要存储哪些信息

2. 处理要求:用户需要完成的处理功能,对处理的响应时间要求,对处理方式的要求(批处理还是联机处理)

3. 安全性和完整性的要求

 

 

数据字典的内容包括

1. 数据项

2. 数据结构

3. 数据流

4. 数据存储

5. 处理过程

其中数据项是数据的最小组成单位,若干个数据项可以构成一个数据结构。数据字典通过数据项和数据结构的定义来描述数据流和数据存储的逻辑内容

 

数据字典的作用:

描述数据库中的数据,是概念设计的基础,并在数据库设计过程中不断修改,充实,完善。

 

什么是数据库的概念结构?试述其特点和设计策略

概念结构时信息世界的结构,即概念模型。

概念结构特点:

1. 能真实,充分的反映现实世界,包括事物和事物之间的关系,

能满足用户对数据的处理要求,是对现实世界的一个真实模型。

2. 易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键

3. 易于修改。当应用环境和应用要求改变时,容易对概念模型修改和扩充,

4. 易于向关系,网状、层次等各种数据模型转换。

 

设计策略:

1. 自顶向下:首先定义全局概念结构的框架,然后逐步细化

2. 自底向上:首先定义各局部应用的概念结构,然后把它们集成起来,得到全局概念结构

3. 逐步扩张:首先定义最重要的核心概念结构,然后向外扩充

4. 混合策略:将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构模型,以它为骨架集成一个自底向上策略设计的个局部概念结构

 

什么是概念结构?概念结构就是信息世界的结构,即概念模型。

概念结构特点

1. 能真实、充分的反映现实世界,包括事物与事物之间的关系

2. 易于理解,用它可以与不熟悉计算机的用户相互交流,用户积极的参与是数据库设计成功的关键

3. 易于修改,当应用环境和应用要求改变时,易于对概念模型的修改和扩充

4. 易于向关系、层次,网状等数据模型转换

 

 

 

概念模型的设计策略:

1. 自顶向下:首先定义一个全局的概念结构框架,逐步细化

2. 自底向上:首先定义各局部应用的概念结构框架,然后把他们集成起来,形成一个全局的概念结构

3. 逐步扩张:首先定义一个核心的概念结构,然后逐步向外扩张形成其他概念结构,直至总体概念结构

4. 混合策略:将自顶向下和自底向上相结合,建立一个由自顶向下形成的全局的概念结构框架,然后以它为骨架集成由自底向上设计的各应用的概念框架.

 

数据库概念结构设计的重要性和设计步骤

 

数据库概念结构设计的重要性:

是整个数据库设计的关键,

将需求分析阶段所获得的用户应用需求抽象成概念结构并以此作为各种数据模型的共同基础,从而更好更准确的让某一个DBMS实现具体需求。

设计步骤:

1. 抽象数据并设计局部视图

2. 集成局部视图并得到全局的概念结构

 

为什么要视图集成:

由于数据库系统是从整体角度看待和描述数据的,因此数据不再面向某个应用而是整个系统。因此必须要进行视图集成,使得数据库能被全系统的多个用户,多个应用共享使用。

视图集成的方法:

1、多个E-R图一次集成

2、逐步集成,用累加的方式一次集成两个分E-R图。

无论使用哪种方式,每次集成局部E-R图时都需要分两步走:

1. 合并,解决各分E-R图之间的冲突,将它们合并起来生成初步E-R

2. 修改和重构,消除不必要的冗余,生成基本E-R

 

什么是数据库的逻辑结构设计?设计步骤

就是把概念结构设计阶段设计好的-.E-R图转换为与选用的DBMS支持的数据模型相符合的逻辑结构

 

设计步骤:

 

1. 将概念结构转换为一般的关系、网状、层次模型。

2. 将转换来的关系、网状、层次模型转换为特定DBMS支持的数据模型

3. 对数据模型进行优化

 

规范化理论对数据库设计的指导意义:

1. 规范化理论为数据库设计人员判断关系模式的优劣提供了理论标准

2. 可以指导关系数据模型的优化,预测模式可能出现的问题

3. 为设计人员提供了自动生产各种模式的算法工具,使数据库设计由了严格的理论基础

*

 

数据库物理设计的内容与步骤

数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,依赖于给定的DBMS

 

为给定逻辑数据模型选取最适合应用要求的物理结构,就是数据库物理设计的主要内容

 

步骤:

1. 确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构。

2. 对物理结构进行评价,评价的重点是时间效率和空间效率

 

数据输入在实施阶段的重要性是什么?如何保证输入数据的正确性?

数据库是专门用来对数据进行存储,管理与应用的,因此在实施阶段必须将原有系统中的历史数据输入到数据库。数据量大且来源于部门中的各个不同的单位。数据的组织方式,结构,和格式都与新设计的数据库系统有差距,组织数据录入就是将各类源数据从各个局部应用中抽取出来,分类转换,最后综合成符合新设计的数据库结构的形式,输入数据库。因此这样的数据转换,组织入库的工作是相当费时费力的工作。特别是原系统是手工数据处理系统时,各类数据分散在各种不同的原始表格,凭证,单据之中,数据输入工作量更大。

 

 

保证输入数据正确的方法:提高数据输入工作的效率和质量。

1. 针对具体应用环境设计一个数据录入子系统,由计算机完成数据入库任务

2. 在源数据入库之前要采用多种方法对其检验,以防止不正确数据入库。

 

查询优化在关系数据库系统的重要性和可能性

重要性:

查询优化是DBMS实现的关键技术,也是优点。

减轻了用户选择存取路径的负担。

用户只要提出干什么,不必指出怎么干

用户不必考虑如何高效率查询,系统查询优化比用户程序优化做的更好

 

可能性;

1. 优化器可以从数据字典中获取许多统计信息,根据信息选择有效的执行计划。而用户程序则很难获得。

2. 如果数据库中的物理统计信息改变,系统可以自动查询并进行重新优化以选择相适应的执行计划。在非关系系统中必须重写程序。重写程序在实际应用中不太可能。

3. 优化器可以考虑很多种不同执行计划,从中选出较优的一个,而程序员考虑的可能性有限

4. 优化器包括很多复杂的优化技术,这些优化技术只有最好的程序员才能掌握。系统的自动优化相当于使得所有人都拥有这些优化技术。

 

 

优化技术的一般准则:

1. 选择运算应尽可能先做

2. 把投影运算和选择运算同时进行。

3. 把投影同其前或其后的双目运算结合起来执行。

4. 把某些选择和它前面要执行的笛卡尔积结合起来成为一个连接运算

5. 找出公共子表达式

6. 选取合适的连接算法

 

查询优化的一般步骤:

1. 把查询转化成某种内部表示——语法树

2. 把语法树转化成标准形式,即利用优化算法,把原始的语法树转化成优化的形式。

3. 选择低层的存取路径

4. 生成查询计划,选择代价最小的

数据库概论期末复习_第1张图片

 Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/school","root","laifu1990");

 

   Statement stmt=conn.createStatement();

 

             String sql="select teacherno,teachername,vote from t_vote";

             ResultSet rs=stmt.executeQuery(sql);

             while(rs.next())

             {

               String teacherno=rs.getString("teacherno");

               String teachername=rs.getString("teachername");

               int vote=rs.getInt("vote");

             out.println(""+"teacherno"+""+teacherno+""+" teachername"+""+teachername+"vote"+""+""+""+""+vote);


 

 

 

 

 

 

 

 

你可能感兴趣的:(数据库概论期末复习知识点)