什么是数据库?
数据库是长期存储在计算机系统中,有组织,可共享的大量数据集合。里面的数据按照某种数据模型进行组织,描述和存放在外存储器上,也可以被多个用户同时使用。所以,数据库有较小的冗余,较高的数据独立性和易扩展性
DBA的职责
-
确保服务器的正常工作和数据库状态正常
-
检查磁盘空间够不够用
-
用监控服务器参数来确认数据库的性能
-
检查系统:对系统进行健康检查
-
删除没有用的数据约束,数据对象,触发器
-
检查每周的备份
-
根据历史数据进行优化
-
看情况分析数据库是否有存储碎片
-
定期检查系统,对性能排查
简述系统故障时的数据库恢复策略
-
扫描日志文件,找到故障发生前提交的事务
-
将事务标识记入REDO队列
-
找出故障发生时尚未完成的事务,把事务标识记入UNDO队列
-
对UNDO队列各事务做撤销处理
-
对UNDO队列中各事务进行重做处理
DBMS的主要功能?
-
数据定义
-
数据存取
-
数据库运行管理
-
数据库的建立和维护
-
数据库的传输
简述关系模式的定义
-
关系模式是对关系结构的描述
-
描述关系是由哪些属性构成,这些属性来自哪些域
-
属性向域的映像关系以及关系的完整性约束条件
-
格式:关系名(属性名、属性名2.。。。)。
-
一个关系模式对应一个关系文件的结构
在关系数据库中能完全消除数据冗余吗?
不能
实现关系数据库中表与表之间的联系,必须要通过公共的属性来完成,这些公共属性可能是一个表的主键,也可能是其他表的外键,有对应的参照完整性规则来保证他们之间关系,所以存在冗余,但能控制冗余度
什么是数据冗余?它会引起哪些操作异常?
数据冗余是指数据大量的重复,使数据之间联系弱,不利于操作。它会引起修改、删除、插入异常。
数据与信息的区别和联系
-
信息是加工后的数据。通过分析综合的一组数据,让用户可以更清晰的了解数据。数据是原材料,信息是产品,信息是数据的含义
-
数据和数据是相对的,对有些人来说是信息,对有些人来说是数据
-
数据是反应客观事务属性的记录,信息是具体表现形式
数据完整性的分类有哪些?通过哪些约束可以实现,各举一个例子。
数据完整性的分类:
-
实体完整性:通过主键约束实现,例如设置主键,确保每一行都有唯一标识
-
参照完整性:通过外键约束实现,例如设置外键,以确保引用的数据存在
-
用户定义完整性:通过触发器约束实现,例如在表中设置触发器,确保数据满足特定的条件
简述事务的调度、串行调度和并发调用的含义
-
调度:事务的执行次序称为调度。
-
串行调度:多个事务依次执行
-
并发调度:利用分时的方法,同时处理多个事务
叙述模式/内模式映像的定义及作用
-
模式/内模式:是指数据库中的模式和内模式之间的映射关系。
-
作用:将数据库中的模式和内模式之间的关系表示出来,以便更好地理解数据库的结构,更好实现数据库的设计和管理
基本的封锁类型有几种?试述他们的含义。
-
排他锁(X锁):也称为写锁,如果事务T对数据对象A加上X锁,那么只能T读取和修改A,其他所有事务都不能再对A加任何类型的锁,知道T事务释放A上的锁。
-
共享锁(S锁):也称为读锁。如果事务T对数据对象A上了S锁,则事务T可以读A,但不能修改A,其他事务也只能对A上S锁,而不能加X锁,直到T释放A上的S锁。
数据库设计分为几个阶段,各阶段的任务是什么?
-
需求分析:准确了解分析用户需求
-
概念结构设计:通过对用户需求进行综合、归纳与抽象,形成DBMS概念模型
-
逻辑结构设计:把概念结构转换炜某个DBMS锁支持的数据模型,并优化
-
物理结构设计:为逻辑数据模型选取合适的应用环境的物理结构
-
数据库实施:用DBMS提供数据语言、工具,根据逻辑设计和物理设计建立数据库,编制与调试应用程序,组织数据入库,并进行试运行
-
数据库运行:对数据库系统运行过程中进行评价、调整与修改
-
维护:在数据库系统运行后进一步优化
简述SQL数据库表的三种类型及它们的区别
-
基本表
-
视图
-
导出表
在用户看来3种表的结构是一样的,都是集合,都可以进行查询操作
数据库并发操作主要解决哪三个问题?如何保证并行操作的可串行性?
-
丢失更新问题
-
数据不一致分析问题
-
读“脏”数据问题
为保证并行操作的可串行性,对任何数据读写操作前进行一个封锁操作。
说明视图与基本表的区别和联系。
-
视图是虚拟表,不存储数据,从数据表中提取数据。
-
基本表是一种真实的表,存储数据,并可以被视图引用。
-
联系:视图可以引用基本表数据,更好的查看管理数据库数据
简述事务的特性。
-
原子性:事务是一个不可分割的工作单位,要么全成功,要么全失败
-
一致性:事务执行前后,数据库的完整性约束不会被破坏
-
隔离性:多个事务之间的执行不会相互影响
-
持久性:一旦事务执行成功,其结果就会被永久保存在数据库中