数据和信息的关系
- 信息在一种可编码符号系统下的编码就是数据。
- 将数据理解为信息,必须在一定的符号系统下进行,否则它就只是一个数而已。
- 一般将“信息”作为一个集合名词,而将“数据”指代为具体的操作对象。
数据库应用系统由哪些部分组成(MIS)
- 硬件。包括服务器、工作站、和网络
- 软件:核心是DBMS,操作系统、DBMS支撑工具,接口库,开发工具等。
- 数据库。具有持久性,结构化和可共享的数据集合。数据库是现代化企业的核心资源之一。
主键的类型有哪些,如何选择主键
- 业务主键(外部主键):就是将业务中有唯一属性的字段挑出来做主键
- 逻辑主键 (内部主键):无实在意义的唯一性编号
视图的特点,功能及其使用意义
- 视图是一个虚表
- 不存储数据,在使用时对原有数据的重新组织。
- 它是一个逻辑结构,不占据存储空间。
- 基于表、在大部分SQL中,特别是DQL和DML,语法地位等价于表
- 使用视图的意义
- 限制存取(字段级权限和行级权限):不同用户不同视角和权限
- 简化查询:别名、减少代码长度和复杂性:在求和值上做TOP-N查询
- 提供不同的查询角度:可以将常用的连接查询构造成视图。
- 兼容数据库设计的修改:新表拼出旧表,视图兼容旧表的程序。
说明事务的ACID特性
- 原子性(Atomicity):事务的一组操作是不可分的。要么完全成功,要么完全失败(即使是在发生系统崩溃的情况下)。
- 一致性(Consistency):事务将数据库从一种一致状态转变为下一种一致状态。
- 隔离性(Isolation):一个事务的影响在该事务提交前对其他事务都不可见。两个事务并行执行的结果和(某种)串行执行的结果是一样的。也称可串行性(Serializability)
- 持久性(Durability):事务一旦提交后,其结果是永久性的(即使是在系统崩溃时)。
如何将现实世界中的具体事务转换成计算机能处理的数据
- 将客观事物或者某一个符号体系下的内容映射成数字的过程,就是编码
- 对于可数集合,可以建立一种编码方案,用有限长度n表示该集合一个子集,并随着n趋近于无穷,该编码方案能够表示该集合所有值。
- 信息在一种可编码符号系统下的编码就是数据。
- 在实际的数据处理中,首先将现实世界的事物及联系抽象成信息世界的信息模型,然后再抽象成计算机世界的数据模型。
数据库的设计过程是由哪些部分构成的?
- 需求分析
- 概念数据库设计
- 逻辑数据库设计
- 物理数据库设计
序列
- 序列是一个独立的编号发生器
- 在一个事务中,通过访问序列的NEXTVAL和CURRVAL可以获得序列的下一个值和当前值
- 保证多个事务之间不会出现并发冲突
- 不与某个表绑定可以在多个表之间复用
索引的特点,功能及其使用意义。
- 索引是这样一种数据库对象,它占据一定的存储空间,能够在查询时被自动使用,从而提高查询性能。
- 基于一个表中某个字段或字段的联合
- 索引的使用
- 不影响语句的正确性和结果
- 避免全表扫描
- 由查询优化器自动使用,并非所有查询都能获益
- 通过某些额外选项可以提示查询优化器利用索引
- 可能会加快DQL速度,但对DML速度的影响是双重的
说明事务的开始标志和结束标志
- 事务(Transaction)是包括多个数据库操作,构成一个完整业务操作的逻辑工作单元。
- 开始标志:从上一个事务完成(或初次连接数据库)后的第一个DML语句开始。
带有FOR UPDATE的语句视为DML。在MSS中有BEGIN TRANSACTION语句 - 结束标志:显式的提交或卷回语句。执行一个DDL语句(提交)。用户断开连接(提交)。用户进程不正常结束(卷回)。
从数据库应用的角度,说明B/S和C/S两种模式的特点。
B/S
- 技术适用于广域网环境
- 可以支持更多的客户,可根据访问量动态配置Web服务器以保证系统性能
- 客户端只需标准的浏览器
- 系统扩展维护简单
- 开发费用较高,开发周期较长
C/S
- 采用Intranet技术,适用于局域网环境
- 可连接用户数有限,当用户数量增多时性能会明显下降
- 客户端都要安装用户程序
- 系统扩展维护复杂
- 开发费用较低,开发周期较短
为什么在设计数据模型时要把数据做的精确
- 避免出现格式不统一?
- 加快开发速度?
- 避免边干边改?
- 可及早发现问题
说明存储过程,游标的作用,以及过程与函数的区别
- 存储过程:用户创建,用SQL和其他语言(如PL/SQL)编写的过程或函数,存储在数据库内部,用来完成一个特定的任务。
- 过程可以返回多个值,函数只能返回一个值
- 用来处理从数据库中查询出来的一组数据的机制。
举例,对不可重复读异常产生的原因及其在数据库管理系统中的解决办法进行描述。
- 不可重复读(Nonrepeatable Read):在T1时间读取某一行,在T2时间重新读取这一行时,这一行可能已经有所修改(消失或者被更新)。
- 并发执行引起错误
- 并发隔离
如何使用空值?请举例说明。
- 空值NULL用来表示未知的(Unknown),不适用的(Inapplicable)。
- 不能直接和空值进行比较,需要使用IS NULL和IS NOT NULL。
说明SQL语句的执行过程(从SELECT到ORDER BY)。
略
Oracle中事务的结束标志是什么?
- 事务开始:Oracle中不需要专门的语句来开始事务。
- 隐含地,从上一个事务完成(或初次连接数据库)后的第一个DML语句开始(带有FOR UPDATE的DQL语句视为DML)。
- 显示地,也使用SET TRANSACTION或者DBMS_TRANSACTION包来开始一个事务。
- 事务结束:执行ROLLBACK或者COMMIT语句,显示地结束事务。
- 执行一个DDL语句,隐含地提交事务。
- 用户断开连接,Oracle会从提交和回滚中挑一个来结束事务。
- 用户进程不正常结束,Oracle会回滚事务。
从多项架构的角度来阐述数据库应用系统的体系结构
- 集中式结构
- 集中式结构-文件服务器模式
- 客户端/服务器结构
- 浏览器/服务器结构
说明触发器的作用,以及触发器与游标的区别
- 触发器是一种特殊的存储过程。它不是由用户显式调用的,而是当满足某个触发事件时自动执行的。
- 触发器包括:触发事件,触发器约束和触发器动作。
- 游标是查询表的过程中,指向某一条数据标记。一般读数据时,都会有游标。我们称为隐性游标。我们也可以定义游标,指向某一条数据。并读取这条数据的内容。
触发器是MySQL响应以下任意语句而自动执行的一条MySQL语句(或位于begin和end语句之间的一组语句):# 说明事务,用户与会话的关系