一、填空
1.数据库设计理论基础
2.完整性约束(not null, primary key, foreign key, check)
3.角色
二、判断
三、单选
四、数据解决关系
五、简单题(抄选择题)
六、综合题(ER图和设计sql语句)
https://blog.csdn.net/qq_39384184/article/details/80814731
关系就是表
元组和记录是一行的数据,元组是概念层,记录是物理层
域就是属性的取值集合
先说候选码,候选码就是可以区别一个元组(即表中的一行数据)的属性或属性的集合,比如学生表
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
版权声明:本文为博主原创文章,转载请附上博文链接!
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;
选择、投影、并、差、笛卡尔积、更名
交、自然连接、除、赋值
图的含义:
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)
CREATE VIEW faculty AS
select ID, name, dept_name
from instructor;