程序员面试-数据库 1

8.1 数据库概念

数据管理经理了人工管理、文件系统到数据库系统3个阶段。数据库是具有逻辑关系和确定意义的数据结合,它能克服传统文件组织中所产生的一系列问题,数据冗余小,由于关系型数据库管理系统对于信息查询有很大的灵活性,并且设计简单,所以已经被广泛使用在了实际的系统开发中。

8.1.1 关系数据库系统与文件数据库系统有什么区别

关系数据库是一个呗组织成一组正式描述的表格的数据项的集合,这些表格中数据能以不同的方式被存取或重新召集而不需要重新组织数据库表格,它对应于一个关系模型中的所有关系的集合。
关系数据库与文件数据库的区别:

+ 关系数据库系统的主要特征是数据的结构化,而文件数据库系统是数据的非结构化。
+ 关系数据库系统中,用户看到的逻辑结构是二维表,而文件数据库系统中,基本元素是文件。
+ 文件数据库系统可以实现多媒体文件管理,支持C/S工作模式。

8.1.2 SQL语言的功能有哪些

+ 数据查询 (查询)
+ 数据操作(插入、删除、修改)
+ 数据定义 (创建、删除)
+ 数据控制 (授权、收回)

基本的SQL语句有:SELECT INSERT UPDATE DELETE CREATE DROP GRANT REVOKE

学生信息表 S(SNO,SNAME,AGE,SEX),其属性分别表示学号、学生姓名、年龄和性别。
选课信息表 SC(SNO,CNO,SCGRADE),其属性分别表示学号、课程号和成绩。
课程信息表 C(CNO,CNAME,CTEACHER),其属性分别表示课程号、课程名称和任课老师姓名。

8.1.3 内连接与外连接的区别

内连接只显示符合连接条件的记录,外连接除了显示符合连接条件的记录外,还显示左表或者右表或者边接表中的所有数据行。
表8-2 学生表A

学号姓名
0001张三
0002李四
0003王五

表8-3 学生表B

学号课程名
0001数学
0002英语
0003数学
0004计算机

对标A和表B进行内连接后的结果见表8-4
表8-4 内连接

学号姓名课程名
0001张三数学
0002李四英语
0003王五数学

对表B和表A进行左外连接后的结果见表8-5
表8-5 左外连接

学号姓名课程名
0001张三数学
0002李四英语
0003王五数学
0004计算机

8.1.4 什么是事务

事务是数据库中一个单独的执行单元。当在数据库中更改数据成功时,在事务中更改的数据就会被提交,不再改变,否则,事务就取消或者回滚,更改无效。
事务的四个属性:原子性、一致性、隔离性、持久性。

8.1.5 什么是存储过程?它与函数有什么联系和区别

+ 存储过程一般作为独立的部分来执行,而函数可以作为查询语句的一部分来调用。由于函数返回的是对象,因此它可以在查询语句中位于From关键字的后面。
+ 一般来说,存储过程实现的功能比较复杂,而函数实现的功能针对性强。
+ 函数需要扩好包住输入的参数,且只能返回一个值或者对象,存储过程可以返回多个参数。
+ 函数可以嵌套在SQL中使用,可以在SELECT中调用,而存储过程则不可以。
+ 函数不能直接操作实体表,只能操作内建表。
+ 存储过程在创建时即在服务器上进行了编译,执行速度更快。

8.1.6 什么是主键?什么是外键

主键也称为主码,是数据库中的一个或多个字段,是表中记录的唯一标示符。主键不能为空。一个表中只能有一个主键。主键列不一定只有一列,可以是多列。
外键也称为外码,表示连个关系之间的联系。当公共关键字在一个关系中为主键时,这个公共关键字被称为另外一个关系的外键。

8.1.7 什么是死锁

在操作系统中有若干个程序并发执行,它们不断的申请、释放资源,在此过程中,由于争夺资源而处于无限的等待状态,造成程序无法继续执行,若无外力作用,它们都将无法推进下去,这时称系统处于死锁状态。
产生死锁的原因有:

+ 系统资源不足
+ 进程推进的顺序不对
+ 资源分配不当

产生死锁有4个必要条件:

+ 进程互斥,每个资源每次只能被一个进程所使用
+ 请求与保持等待:一个进程因请求资源而被阻塞时,对已获得的资源保持不放
+ 不可剥夺:进程使用的资源,在未使用完之前,不能被其他进程所剥夺
+ 环路等待:若干进程之间形成首尾相接的等待资源关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值