一晚上速成数据库 ——应付17级南开大学软件学院数据库考试

一、填空
1.数据库设计理论基础
2.完整性约束(not null, primary key, foreign key, check)
3.角色
二、判断
三、单选
四、数据解决关系
五、简单题(抄选择题)
六、综合题(ER图和设计sql语句)

1.概念

https://blog.csdn.net/qq_39384184/article/details/80814731

2. 关系 记录、元组、域 ⭕️码的概念 完整性 断言、触发器

关系就是表
元组和记录是一行的数据,元组是概念层,记录是物理层
域就是属性的取值集合

先说候选码,候选码就是可以区别一个元组(即表中的一行数据)的属性或属性的集合,比如学生表
student(id,name,age,sex,deptno),其中的id是可以唯一标识一个元组的,所以id是可以作为候选码的,既然id都可以做候选码了,那
么id和name这两个属性的组合可不可以唯一区别一个元组呢?显然是可以的,此时的id可以成为码,id和name的组合也可以成为
码,但是id和name的组合不能称之为候选码(超码),因为即使去掉name属性,剩下的id属性也完全可以唯一标识一个元组,就
是说,候选码中的所有属性都是必须的,缺少了任何一个属性,就不能唯一标识一个元组了,给候选码下一个精确的定义就是:可
以唯一标识一个元组的最少的属性集合。 
而码是没有最少属性这个要求的。另外,一个表的候选码可能有多个,从这些个候选码中选择一个做为主码,至于选择哪一个候选
码,这个是无所谓的,只要是从候选码中选的就行。 
至于主属性,刚才提到了,一个表可以有多个候选码,那么对于某个属性来说,如果这个属性存在于所有的候选码中,它就称之为
主属性
--------------------- 
作者:pyai.top 
来源:CSDN 
原文:https://blog.csdn.net/intmainhhh/article/details/80931033 
版权声明:本文为博主原创文章,转载请附上博文链接!

3. ⭕️常见的sql语句

 CREATE TABLE instructor (
ID char(5) ,
name varchar(20) not null, 
dept_name varchar(20),
salary numeric(8,2), 
primary key (ID),
check (salary >= 0));

DROP TABLE instructor;

ALTER TABLE instructor add birthday date;

SELECT (ALL/DISTINCT) *
FROM instructor
WHERE building like‘%Watson%’
ORDER BY salary DESC, name ACS;

(select course_id
from section
where semester =‘Fall’and year = 2009)
 union/intersect/except
(select course_id
from section
where semester =‘Spring’and year = 2010);

avg,sum,min,max,count,
group by

DELETE FROM instructor
WHERE dept_name =‘Finance’;

INSERT INTO course
VALUES (‘CS-437’, ‘Database Systems’, ‘Comp. Sci.’, 4);

UPDATE instructor
SET salary = salary * 1.03 
WHERE salary > 100000;

4. 函数 ⭕️存储过程 触发器

5. ⭕️关系代数 元组演算 域演算

选择、投影、并、差、笛卡尔积、更名
交、自然连接、除、赋值

6. ⭕️E-R模型

在这里插入图片描述

图的含义:
cook:实体集,厨师(假设每个厨师都有编号,可以认为是某个饭店内部的厨师集)
food :实体集,食物。有 名称name 和 第一次被制作的时间time 两个属性
cook_food : 联系集,哪个厨师做了哪个食物

弱实体集weak entity set
定义:
没有足够的属性以形成主码的实体集
解释:图中的food就是弱实体集,名称和第一次被制作的时间都不足以唯一确定一个元组,即没有主码。因为食物名称可能重合,制作时间也可能相同。

相对地,有主码的实体集称为强实体集strong entity set,如cook,主码为cook_id。

弱实体集与强实体集关联才有意义
这个强实体集被称为标识identifying或属主实体集owner entity set。
将弱实体集与标识实体集相联的联系称为标识性联系identifying relationship,在E-R图中用 双菱形 表示
我们称弱实体集存在依赖于标识实体集,标识实体集拥有弱实体集。

例如:图中cook_food为标识性联系
cook是标识实体集
food存在依赖于cook,cook拥有food。

分辨符discriminator(部分码)
弱实体集没有可以充当主码的属性,它用分辨符来区分属性集合。
在实体集中用 虚下划线 标识(图中蓝色虚线)

food的分辨符是由 name、time 组成。

为什么可以区别:对于一个厨师来说,时间和名称唯一标识了一个食物
(请不要钻牛角尖说同时做两个名字一样的菜,没意思)

弱实体集的主码
标识实体集的主码 + 分辨符
food的主码为{ cook_id, name , time }
--------------------- 
作者:huxinxue 
来源:CSDN 
原文:https://blog.csdn.net/huxinxue/article/details/89060224 
版权声明:本文为博主原创文章,转载请附上博文链接
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190621012640245.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjE3NTE5Nw==,size_16,color_FFFFFF,t_70)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
就考下面这个图?
就考这个图

7.设计一个好的Scheme 评价标准 无损分解 两大理论:函数依赖(范式:第一、巴斯、第三)、多值依赖(四、五范式)

8.视图

CREATE VIEW faculty AS 
select ID, name, dept_name 
from instructor;

9应用开发 sql注入 怎么查询更有效率

11. ⭕️事务 ACID 并发处理 恢复 可串行化 ⭕️锁——两阶段加锁 死锁、破坏 系统崩溃——日志、事务恢复

猜你喜欢

转载自blog.csdn.net/weixin_42175197/article/details/93139367
今日推荐