笔试面试那件小事(数据库知识)

1>关系数据库规范化是为了解决关系数据库中(插入异常、删除异常和数据冗余)问题而引入。

2>在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段过程中,其中(数据库系统阶段)的数据独立性最高。

3>数据库(DB)、数据库系统(DBS)、数据库管理系统(DBMS)三者之间的关系(DBS包括DB和DBMS)

4>数据库管理系统能实现对数据库中数据表、索引等对象的定义、修改、删除,这类语言称为(数据库定义语言(DDL))

5>同一关系模型的任意两个元组值(不能全相同)

6>概念模型是(用于信息世界的建模,与具体的DBMS无关)

7>物理数据独立性是指(内模式改变,模式不变)

8>SQL语言是(关系数据库语言)

9>自然连接是构成新关系的有效方法,一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或者多个共同的(属性)

10>关系运算中花费时间可能最长的运算是(笛卡尔积)

11>文件系统与数据库系统最大区别是(数据结构化)

12>用于事务回滚的SQL语句(ROLLBACK)

13>(日志文件)用来记录对数据库中数据进行的每一次更新操作

14>并发操作会带来哪些的数据不一致(丢失修改,不可重复读,读脏数据)

15>为了提高效率,关系数据库必须进行(查询)优化处理

16>对数据库物理存储方式的描述(内模式)

17>在数据库三级模式之间引入二级映像的主要作用是(提高数据与程序的独立性)

18>视图是一个虚表,视图的构造基于(基本表或视图)

19>关系代数中投影运算对应的是SQL语句中的(SELECT)

20>将E-R模式转换成关系模型,属于数据库的(逻辑设计)

21>事务日志的主要用途(事务处理)

22>如果事务T已经在数据R上加了X锁,则其他事务在数据R上(吧可以加任何锁)

&&说明视图和基本表的区别和联系。

视图是从一个或者几个基本表导出,它与基本表不同,它是一个虚表,数据库中只存放视图的定义而不存放视图对应的数据。这些数据存放在原来的基本表中,当基本表的数据发生变化,从视图中查询出的数据也随之变化。视图

一经过定义就可以像基本表一样被查询、删除,也可以在视图之上定义新的视图。但对视图的更新操作有一定的限制。

&&简述事务的特性

事务具有四个特性:

原子性:一个事务要么做,要么什么都不做

一致性:事务对数据库的修改必须是从一个一致状态转到另一个一致状态

隔离性:一个事务的内部操作以及使用数据对其他事务是隔离的

持续性:事务一旦提交,对数据库的影响是持久的

&&简述关系模型中的参照完整性

参照完整性规则:若属性F是基本表关系S的外码,它与基本表关系R的主码Ks对应。要求属性F的取值必须与关系R中的某元组的主码对应,或者为NULL

&&现有关系数据库如下:

学生(学号,姓名,性别,专业)

课程(课程号,课程名,学分)

学习(学号,课程号,分数)

分别用关系代数表达式和SQL语句完成下列要求:

(投影用T代表,选择用S代表,连接用L表示)

1,检索所有选修了课程号为“C112”课程的学生的学号和分数

SELECT 学号,分数  FROM 学习 WHERE 课程号=‘C112’

关系代数:T<学号,分数>(S<课程号=‘C112’>(学习))

2,检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数

SELECT 学生.学号,姓名,课程名,分数

FROM 学生,学习,课程

WHERE 学习.学号=学生.学号 AND 学习.课程号=课程.课程号 AND 专业=‘英语’

关系代数:T<学号,姓名,课程名,分数>(S<专业=‘英语’>(L(学生,学习,课程)))

3,检索“数据库原理”课程成绩高于90分的所有学生的学号、姓名、专业和分数

SELECT 学生.学号,姓名,专业,分数

FROM 学生,学习,课程

WHERE 学生.学号=学习.学号  AND 学习.课程号=课程。课程号 AND 分数>90 AND 课程名=‘数据库原理‘

代数关系:

类似与上题

4,检索没学课程号为"C135"课程的学生信息,包括学号,姓名和专业

SELECT 学号,姓名,专业

FROM 学生

WHERE 学号 NOT IN (SELECT 学号 FROM 学习 WHERE 课程号=‘C135’)

5,检索至少学过课程号为"C135"和“C100”的课程的学生信息,包括学号、姓名和专业

SELECT 学号,姓名,专业

FROM 学生

WHERE 学号 IN(SELECT X1.学号 FROM 学习X1,学习 X2 WHERE X1.学号=X2.学号 AND X1.课程号=‘C135’ AND X2.课程号=‘C100’)

&&设有一个教学管理数据库,其属性为:学号(S#),课程号(C#),成绩(G),任课教师(TN),教师所在的系(D),这些数据的大概意思如下:

1,一个学生所修的每门课程都有一个成绩

2,每门课程只有一位任课教师,但每个教师可以教多门课程

3,教师中没有重名,每个教师只属于一个系

问题:

根据上述的语义确定函数依赖集

如果用上面所有属性组成一个关系模式,那么该关系模式为何模式?并举例说明

将其分解为具有依赖保持的3NF

解答:

(1)F={(S#,C#)->G,C#->TN,TN->D}

(2)该关系模式只满足1NF,(即所有的属性为原子属性)

该关系模式中的候选关键字为(S# ,C#) 和非主属性G 、TN 、D

因为存在非主属性TN部分依赖与主属性,不满足2NF的要求

存在插入异常:例如某个学生还未选课,则无法加入数据库

(3)R1={S#,C#,G}   R2={C#,TN}  R3={TN,D}

时间: 2024-10-12 15:48:58

笔试面试那件小事(数据库知识)的相关文章

笔试面试那件小事(数据库概念知识)

第一节: 相关概念: 1>Data:数据,是数据库中存储的基本对象,是描述事物的符号记录 2>DataBase:数据库,是长期存储在计算机内.有组织的,可共享的大量数据的集合. 3->DBMS:数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,用于科学的组织.存储和管理数据,高效的获取和维护数据 4->DBS:数据库系统,指在计算机系统中引入数据库后的系统,一般由数据库.数据库管理系统和数据库管理员组成 5->数据模型:是用来抽象.表示和处理现实世界的数据和信息工具

笔试面试那件小事(数据库-范式)

1>相关概念和知识 数据依赖:反映一个关系内部属性与属性之间的约束关系,是现实世界属性相互联系的抽象,属于数据内在的性质和语义的体现 规范化理论:是用来设计良好的关系模式的基础.它通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常.删除异常.更新异常和数据冗余问题 函数依赖:简单的说,对于关系模式的两个属性子集X和Y,若X的任一取值都能唯一确定Y的值,那么则称Y函数依赖于X,记为X->Y 非平凡函数依赖:对于关系模式的两个属性子集X和Y,如果X->Y,但是Y不是X的子集,那么就称

笔试面试那件小事(常见的C++基础题)

1->简述变量声明和定义的区别 为变量分配地址和存储空间称为定义,不分配地址称为声明.一个变量可以在多个地方声明,但只能在一个地方定义.加入extern修饰的变量的声明,说明此变量将在文件以外或者文件的最后面定义. 2->简述sizeof和strlen的区别 主要区别如下: sizeof是一个操作符,strlen是库函数:sizeof的参数可以是数据的类型,也可以是变量.而strlen的参数只能是以'\0'结尾的字符串参数. 编译器在编译时就计算出了sizeof的结果,而strlen函数必须在

面试笔试常考的mysql 数据库操作group by

IT 面试中,数据库的相关问题基本上属于必考问题,而其中关于sql语句也是经常考察的一个重要知识点. 下面介绍下sql语句中一个比较重要的操作group by,他的重要行一方面体现在他的理解困难度,一方面体现应用中的长见性. 首先,给出一个studnet学生表: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) DEFAULT NULL, `sex` tinyint(1) DEFAU

数据库知识整理

关系型数据库知识整理: 一,关系型数据库管理系统简介: 1.1使用数据库的原因: 降低存储数据的冗余度 提高数据的一致性 可以建立数据库所遵循的标准 储存数据可以共享 便于维护数据的完整性 能够实现数据的安全性 1.2基本概念: 对于任何数据库来说,表之间的关联关系存在三种基本的关系类型:一对一,一对多,多对多仅此三种. 目前流行的关系型数据库服务器管理系统有:微软-MS SQL Server.甲骨文-Oracle.IBM-DB2.开源的MySql和PostgreSQL等.(在面试中有被问到过)

走向面试之经典的数据库笔试题:一、你必知必会的SQL语句练习-Part 2

本文是在Cat Qi的参考原帖的基础之上经本人一题一题练习后编辑而成,非原创,仅润色而已.另外,本文所列题目的解法并非只有一种,本文只是给出比较普通的一种而已,也希望各位园友能够自由发挥. 一.书到用时方恨少:"图书-读者-借阅"类题目 1.1 本题目的表结构 本题用到下面三个关系表: CARDS 借书卡. CNO 卡号,NAME 姓名,CLASS 班级 BOOKS 图书. BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数 BORROW

leetcode 刷500道题,笔试/面试稳过吗?谈一谈这些年来算法的学习

想要学习算法.应付笔试或者应付面试手撕算法题,相信大部分人都会去刷 Leetcode,有读者问?如果我在 leetcode 坚持刷它个 500 道题,以后笔试/面试稳吗? 这里我说下我的个人看法,我认为不稳.下面说说为啥不稳以及算法题应该如何刷.如何学才比较好,当然,也会推荐自己学过的资料. 一.先说说笔试题 在刷 leetcode 的时候,你会发现,每道题的题意都很短,你只需要花十几秒的时间,就知道这道题是要你干嘛了,并且每道题所用道的算法思想都很明确,动态规划.递归.二分查找等,你可能很快就

数据库知识整理&lt;二&gt;

又继续写的博客,希望自己能坚持每天写博客.分享自己的点滴,对自己成长有帮助.今天下午高强度打了三个小时篮球,小腿都抽筋了.很爽,失落的心情似乎变得开明了一些.想到了一句话:“像SB式的坚持总会有好的收获”,因为坚定了目标,不达目标不罢休.其他的就没什么了.好吧,不多说这些了.继续数据库知识总结吧. 二,管理数据库和表: 2.1管理数据库: 创建和使用数据库: 创建数据库的SQL语句:create database 数据库名: 需要注意的是:数据库名在服务器中必须是唯一的并且遵循合法的标识符规则:

程序员Web面试之前端框架等知识

基于前面2篇博客: 程序员Web面试之jQuery 程序员Web面试之JSON 您已经可以顺利进入Web开发的大门. 但是要动手干,还需要了解一些已有的前端框架.UI套件,即要站在巨人肩膀上而不是从轮子开始造汽车. 下面就Web开发用到的前端框架.UI套件.UI插件一一列举(排名不分先后): jQuery UI jQuery UI以 jQuery 为基础的开源 JavaScript 网页用户界面代码库.包含底层用户交互.动画.特效和可更换主题的可视控件.包含了许多维持状态的小部件(Widget)