西安邀请赛C题 单源点最短路

作者 : Dolphin

原文地址:http://blog.csdn.net/qingdujun/article/details/27109035

一、实体完整性定义

[例1]将Student表中的Sno属性定义为码。

CREATE TABLE Student
(
   Sno CHAR(10) PRIMARY KEY,  /*在列定义主码*/
   Sname CHAR(20) NOT NULL,
   Sage SMALLINT
);

或者:

CREATE TABLE Student
(
   Sno CHAR(10),
   Sname CHAR(20) NOT NULL,
   Sage SMALLINT,
   PRIMARY KEY(Sno)  /*在表级定义主码*/
);

[例2]将SC表中的Sno,Cno属性组定义为码。

CREATE TABLE SC
(
   Sno CHAR(10) NOT NULL,
   Cno CHAR(4) NOT NULL,
   Grade SMALLINT,
   PRIMARY KEY(Sno,Cno)  /*只能在表级定义主码*/
);

二、参照完整性

[例3]定义SC中的参照完整性

CREATE TABLE SC
(
   Sno CHAR(10) NOT NULL,
   Cno CHAR(4) NOT NULL,
   Grade SMALLINT,
   PRIMARY KEY(Sno,Cno),  /*只能在表级定义主码*/
   FOREIGN KEY(Sno) REFERENCES Student(Sno),  /*在表级定义参照完整性*/
   FOREIGN KEY(Cno) REFERENCES Course(Cno)    /*在表级定义参照完整性*/
);

[例4]显示说明参照完整性的违约处理示例。

CREATE TABLE SC
(
   Sno CHAR(10) NOT NULL,
   Cno CHAR(4) NOT NULL,
   Grade SMALLINT,
   PRIMARY KEY(Sno,Cno),  /*只能在表级定义主码*/
   FOREIGN KEY(Sno) REFERENCES Student(Sno)  /*在表级定义参照完整性*/
     ON DELETE CASECADE   /*当删除时,级联*/
     ON UPDATE CASECADE,  /*当更新时,级联*/
   FOREIGN KEY(Cno) REFERENCES Course(Cno)   /*在表级定义参照完整性*/
     ON DELETE NO ACTION  /*当删除时,拒绝*/
     ON UPDATE CASECADE   /*当更新时,级联*/
);

三、用户定义完整性

[例5]在定义SC表时,说明Sno,Cno,Grade属性不允许取空值。

CREATE TABLE SC
(
   Sno CHAR(10) NOT NULL,
   Cno CHAR(4) NOT NULL,
   Grade SMALLINT NOT NULL,
   PRIMARY KEY(Sno,Cno)  /*只能在表级定义主码*/
   /*如果定义了试题完整性,即主键,则隐含Sno,Cno不能取空*/
);

[例6]建立部门表DEPT,要求部门名称Dname列取值唯一,部门编号Deptno列为主码。

CREATE TABLE DEPT
(
   Deptno NUMERIC(2),
   Dname  CHAR(9) UNIQUE,   /*要求Dname列值唯一*/
   Location CHAR(10),
   PRIMARY KEY(Deptno)      /*在表级定义主码*/
);

[例7]Student表的Ssex只允许取"男"或"女"。

CREATE TABLE Student
(
   Sno CHAR(10) PRIMARY KEY,  /*在列定义主码*/
   Sname CHAR(20) NOT NULL,
   Ssex  CHAR(2) CHECK (Ssex IN ('男','女')),  /*性别属性Ssex只允许取'男'或'女'*/
   Sage SMALLINT
);

[例7]SC表的Grade的值应该在0和100之间。

CREATE TABLE SC
(
   Sno CHAR(10) NOT NULL,
   Cno CHAR(4) NOT NULL,
   Grade SMALLINT CHECK(Grade >= 0 AND Grade <= 100),
   PRIMARY KEY(Sno,Cno)  /*只能在表级定义主码*/
   /*如果定义了试题完整性,即主键,则隐含Sno,Cno不能取空*/
   FOREIGN KEY(Sno) REFERENCES Student(Sno),
   FOREIGN KEY(Cno) ENFERENCES Course(Cno)
);

[例9]当学生性别是男时,其名字不能以Ms.打头。

CREATE TABLE Student
(
   Sno CHAR(10) PRIMARY KEY,  /*在列定义主码*/
   Sname CHAR(20) NOT NULL,
   Sage SMALLINT,
   Ssex CHAR(2),
   CHECK(Ssex='女' OR Sname NOT LIKE 'Ms.%')
   /*定义了元组中Sname和Ssex两个属性值之间的约束条件*/
);

四、完整性约束命名子句

[例10]建立学生登记表Student,要求学号在90000~99999之间,姓名不能取空值,年龄小于30,性别只能是"男"或"女"。

CREATE TABLE Student
(
   Sno NUMERIC(6)
      CONSTRAINT C1 CHECK(Sno BETWEEN 90000 AND 99999),
   Sname CHAR(20)
      CONSTRAINT C2 NOT NULL,
   Sage NUMERIC(3)
      CONSTRAINT C3 CHECK(Sage < 30),
   Ssex CHAR(2)
      CONSTRAINT C4 CHECK(Ssex IN('男','女')),
   CONSTRINT StudentKey PRIMARY KEY(Sno)
);

[例12]去掉[例10]中Student表中对性别的限制。

ALTER TABLE Student
  DROP CONSTRAINT C4;

[例13]修改表Student中的约束条件,要求学号改为在1000~9999之间。

ALTER TABLE Student
  DROP CONSTRAINT C1;
ALTER TABLE Student
  ADD CONSTRAINT C1 CHECK(Sno BETWEEN 1000 AND 9999);

参考文献:王珊,萨师煊.数据库系统概论(第4版) [M].北京:高等教育出版社,2006.152-160.

西安邀请赛C题 单源点最短路

时间: 2024-10-10 06:17:44

西安邀请赛C题 单源点最短路的相关文章

【题解整理】西安邀请赛部分题题解

很抱歉,学校的OJ并不支持外网,而且还没有加上题目... A 字符串基本处理 http://blog.csdn.net/polossk/article/details/27113175 B 状态压缩加剪枝,但是我们没敢做 C 单源点最短路 http://blog.csdn.net/polossk/article/details/27113385 D 字符串生成器 深搜 http://blog.csdn.net/polossk/article/details/27120395 J 状态压缩DP h

西安邀请赛J题 状态压缩DP

Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具.Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数.它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构.host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善.界面友好.软件 Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量

西安邀请赛A题 字符串基本处理

很抱歉,学校的OJ并不支持外网,而且还没有加上题目... 题意很简单,就是给一个文章,关于那个作死狗DOGE,问文章中出现了多少个DOGE,不考虑大小写. 然后就很粗暴的用toupper判断了,毫无难度. 代码如下: /**** *@author Shen *@title 西安邀请赛A */ #include <cctype> #include <cstdio> using namespace std; const int maxLen = (1 << 16); cha

西安邀请赛D题 字符串生成题 深搜

很抱歉,学校的OJ并不支持外网,而且还没有加上题目... 题意是说,求一个字符串,他的所有长度超过4的子串都是唯一的. 然后我当时是想aaaa, baaa, caaa, daaa...这样巴拉巴拉一直生成下去的,后来发现真的是想的太天真了,因为前面的两个长度为4的子串("aaaabaaa")的存在,直接封杀了3个子串("aaab", "aaba", "abaa").然后我就想记录状态去试着暴力去跑一个生成机.其实也很简单,就是

hdu 4849 最短路 西安邀请赛 Wow! Such City!

http://acm.hdu.edu.cn/showproblem.php?pid=4849 会有很多奇怪的Wa的题,当初在西安就不知道为什么wa,昨晚做了,因为一些Sb错误也wa了很久,这会儿怎么写都会AC.... 收获: 1.还是基本都构思好在去敲代码,因为当时没过,昨晚心里有阴影,敲得很慢,而且最开始各种取模以防止漏掉,太保守了......以后一定先估算是不是需要取模防止TLE,当然时间够的话还是适当多取个模防止莫名其妙的错误.. 2.如果出错,注意参数是不是对的,最开始写好之后,因为m和

ACM学习历程——HDU5137 How Many Maos Does the Guanxi Worth(14广州10题)(单源最短路)

Problem Description "Guanxi" is a very important word in Chinese. It kind of means "relationship" or "contact". Guanxi can be based on friendship, but also can be built on money. So Chinese often say "I don't have one ma

【随笔】天道酬勤——西安邀请赛之感

至今我都不敢相信周日那天发生了什么.当我那个只是抱着试一试的心态去提交的D题结果竟然返回AC的时候,当志愿者把第四个气球送过来的时候,当我们的排名一度达到12名的时候,我不敢相信自己的双眼.直到最后,我看到了那张平平淡淡的获奖证书,看到了上面写着的NWPU_Assassin.我才真正的冷静下来,原来上帝还是眷顾我的. 一 其实这次比赛我们又当志愿者又当参赛队员,累得半死.志愿者们系统不会搞,我们来:座位安排不会,我们来:前前后后大事小事都是我们在搞.热身赛的时候我们一个队做完两个题之后就直接去当

模板C++ 03图论算法 1最短路之单源最短路(SPFA)

3.1最短路之单源最短路(SPFA) 松弛:常听人说松弛,一直不懂,后来明白其实就是更新某点到源点最短距离. 邻接表:表示与一个点联通的所有路. 如果从一个点沿着某条路径出发,又回到了自己,而且所经过的边上的权和小于0, 就说这条路是一个负权回路. 回归正题,SPFA是bellman-ford的一种改进算法,由1994年西安交通大学段凡丁提出.它无法处理带有负环的图,判断方法:如果某个点进入队列的次数超过N次则存在负环. SPFA的两种写法,bfs和dfs,bfs判别负环不稳定,相当于限深度搜索

【算法系列学习】Dijkstra单源最短路 [kuangbin带你飞]专题四 最短路练习 A - Til the Cows Come Home

https://vjudge.net/contest/66569#problem/A http://blog.csdn.net/wangjian8006/article/details/7871889 邻接矩阵实现的单源最短路 1 #include<iostream> 2 #include<cstdio> 3 #include<string> 4 #include<cstring> 5 #include<algorithm> 6 #include