数据库习题

本文探讨了数据库中的E-R图,包括实体、属性和联系类型的定义及示例。接着,解释了元组在关系型数据库中的角色。讨论了SQL中的`BETWEEN`操作符以及事务的概念,重点解析了ACID(原子性、一致性、隔离性和持久性)四大特性,以及不同隔离级别可能导致的问题。此外,还涉及数据库中的锁机制,如共享锁和排他锁,以及事务处理中的并发控制策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.数据库中的E-R图
E-R图是(实体-联系图)用于反应现实世界中实体之间的联系的图形。
包含元素有:
1.实体(矩形框为实体名)
2.属性(短横线连接实体,椭圆内写上属性名)
3.联系类型(联系连接不同实体的线上表示出联系类型)(菱形表示)
联系类型:1:1(实体之间一对一关系);1:n(1对多的关系);m:n(多对多的关系);
合并E-R图:各个局部应用面临问题不同,各个子系统的E-R图之间存在不一致,称为冲突
1.属性冲突:属性值类型,取值范围,取值集合不同
2.命名冲突:不同意义的对象在不同局部应用中具有相同的名字||同一意义的对象在不同局部应用中具有不同的名字
3.结构冲突:同一对象在不同应用中具有不同的抽象;

2.数据库中什么是元组?
元组是关系型数据库中的基本概念,关系是一张表(表中每一行是一个元组)(每列就是一个属性)

3. sql语言中,between 20 and 30 表示的区间?
sql中:between 和 and 表示的是闭区间
4. 什么是事务?
mysql事务:传统理解mysql中一次操作过程表示一次事务
mysql中有多个线程,同时操作mysql数据,称为并发事务
mysql中,数据库层面采用不同的事务隔离级别进行并发事务的控制
不同隔离级别是因为数据库中内部锁机制使用方式不同
有的是在select完成之后立马释放锁,有的是在commit之后释放锁
应用层事务:
每一个线程调用服务本质上也称为事务
多线程同时调用服务,也称为并发事务
应用层对并发事务解决方案包含:同步锁(悲观锁),乐观锁

ACID:

A:原子性(事务为一次数据库操作,要么执行,要么不执行,称为原子性)
C:一致性(事务执行过程中,数据库中数据总数保持不变)
I:隔离性(事务执行过程相互隔离),不产生相互影响(但是不可避免,所以采用锁机制)
D:持久性(事务每一次执行结果都应持久化至数据库中)

不同隔离级别可能产生的数据操作问题
1.脏读:两个事务,t1事务可以读取到t2事务正在做更改的数据的中间状态(而这个状态可能不会被持久化),可能发生回滚(rollback),导致t1事务两次读取到的同一行数据可能不相同
2.不可重复读:t1事务在整个事务执行过程中读取某一条记录多次,发现读取此条记录每次都不同
3.幻读:t1事务在整个事务执行过程中读取某一范围内数据,在第二次读取时发现多了几行或者少了几行

数据库中的集中隔离级别:
read-uncommited:读未提交;一个事务更新语句没有提交,但是别的事务可读到这种改变(上述问题均可出现,极不安全)
read-commites:读已提交;一个事务只能看到其他事务已经提交的更新,消除脏读
repeatable read:可重复读:一个事务中进行两次或多次同样的对于数据内容查询,得到的结果相同,但是不保证对于数据条数的查询是一样的,存在读,改行数据就禁止写(消除不可重复读)
serializable:事务执行中,不允许别的事务并发写操作的执行,完全串行化的读,只要存在读就禁止写,但可以同时读(消除幻读)最高隔离级别,效率低

数据库中锁:
共享锁:s锁,读锁。多事务可同时对对象加s锁,多个事务可以同时读,不能有写操作,直到事务释放s锁
排它锁:X锁,写锁。事务A对对象T加X锁,其他事务不能对T加任何锁,只有A可以读写对象T直到A释放X锁
更新锁(U锁):用于预定对此对象施加X锁,允许其他事物读,但是不允许再施加U锁或X锁,当被读取对象将要被更新时,升级为X锁(用于预防死锁);死锁(使用共享锁时,修改数据的操作分为两部分,获取共享锁,读取数据,将共享锁升级为排它锁,再执行修改操作,若同时两个事务对一个对象申请了共享锁,再修改数据时,这些事务均将共享锁升级为排它锁,这些事务都不会释放共享锁而是等着对方释放,造成死锁,如果一个数据在修改前直接申请更新锁,在数据修改时再升级为排他锁,可以避免死锁)
5.在数据库设计中,对数据库存储结构和存取方法的分析在什么阶段?
需求分析阶段的任务:对现实世界要处理的对象(组织,部门,企业等)进行详细调查,在了解现行系统功能的过程中,确定系统边界,收集支持系统目标的基础数据及其处理方法
概念设计阶段任务:对用户要求描述的现实世界,通过对其进行分类,聚集和概括,建立抽象的概念数据模型,如果是关系型数据库,得到的是E-R模型;
逻辑设计阶段:将概念数据模型设计成数据库的一种逻辑模式,然后对关系模式进一步做规范化处理,提高存储效率和处理效率
物理结构设计:根据特定的数据库管理系统所提供的多种存储结构和提取方法,为具体的应用任务选择最合适的物理存储结构,存取方法和存取路径
6.B属性函数依赖于A属性时,属性A与B的联系是?
A——>B,表示A中每一个属性在B中只有唯一一个值与之对应。但是B中一个值可以与A中的多个值对应。
7.sql的语言特性?
sql语言是一种非过程化语言,一次处理一个记录,对数据提供自动导航。SQL允许用户在高层数据结构中工作,而不对单个记录进行操作。所有SQL语句接受集合作为输入,返回集合作为输出。SQL集合特性允许一条SQL语句可以作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法。所有SQL使用查询优化器(RDBMS(关系数据管理系统)的一部分)
8.Access支持的查询类型?
1.选择查询:从一个或多个表中检索数据,在一定限制条件下,可以通过选择查询更改相关表中的记录,还可以对记录进行分组,统计,计数,求平均值等操作
2.交叉表查询:在一种紧凑的,类似于电子表格的格式中,显示来源于表中某个字段的合计值,计算值,平均值等。交叉表查询将这些数据分组,一组列在数据表的左侧,一组列在数据表的上部。
3.参数查询:参数查询会在执行时弹出对话框,提示用户输入必要的信息,然后按照信息进行查询
4.操作查询:在一个操作中更改许多记录的查询,操作查询分为四种:删除,更新,追加,生成表
5.SQL查询:使用SQL语句创建的查询,包含:联合查询,传递查询,数据定义查询,子查询;
9.数据库与文件系统的根本区别是什么?
文件系统以文件为单位的数据共享,数据库系统实现以记录和字段为单位的数据共享
数据库是一定方式储存在一起,能为多个用户共享,具有尽可能小的冗余度的特点,是与应用程序彼此独立的数据集合
对数据的增删改查有同一软件进行管理和控制
文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。负责为用户建立文件,存入,读出,修改,存储文件,控制文件的读取
10.DB,DBMS,DBS三者之间的关系?
DB:database缩写。数据库是逻辑上的存储数据的概念
DBS:database system 是数据库系统(是由数据库和数据库管理软件组成)
DBMS:database mangement system 是操作数据库和管理数据库的一个系统
DBS(DB,DBMS)
11.数据库运行于哪种状态下可以防止数据的丢失?
在archivelog mode 只要其归档日志文件不丢失,就可以有效预防数据丢失
12.substr以及right用法?

  • substr(str,pos)从pos开始的位置,一直截取到最后
  • substr(str,pos,len)从pos开始的位置,截取len长度
  • right(a,b)表示从字符表达式最右边一个字符开始返回指定数目的字符,若b的值大于a的长度,则返回字符表达式的全部,若b小于0或为负数,则返回空;
  • A$B表示A是否是B的子串;

13.三级封锁协议

  • 一级封锁协议:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(commit)和非正常结束(Rollback).一级封锁协议可以防止丢失数据,并且保证事务T是可恢复的。使用一级封锁协议可以解决丢失修改问题,但是不能保证可重复读和脏读
  • 二级封锁协议:一级封锁协议加上事务T在读取数据R之前,必须对其施加S锁,读完后释放S锁。二级封锁协议防止丢失修改并且可以进一步防止脏读。但是不能保证可重复读
  • 三级封锁协议:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,知道事务结束才释放,防止丢失修改,脏读,一级防止不可重复读

14.SQL的使用方式?

  • 在终端交互方式下使用:称为交互式SQL
  • 嵌入在高级语言的程序中使用,称为嵌入SQL.

15.逻辑数据独立性?
模式:(逻辑模式),是数据库中全体逻辑结构和特征的描述,是所有用户的公共数据视图
外模式:又称子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用相关的数据的逻辑表示
内模式:存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,
16.数据库的存储过程的方法?
exec是sql server的存储过程语句
call是mysql的存储过程调用方式,同时参数必须存在或为null;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值