• 欢迎加“百元导航”为主页,windows8风格,0.3s极速加载
  • 王柏元的博客专用搜索引擎:极客人,就用“极客搜”!
  •    2年前 (2015-04-28)  算法语言 |   抢沙发  174 
    文章评分 1 次,平均分 5.0
    [收起] 文章目录

    第一部分(PART1):

    1.按照以下要求标识出每个关系的关键字(主键、备用键、外键)。对于此练习,选择关键字的时候可以忽略性能因素。

    •  1)标识出每个关系的主键,如果没有主键,做适当的论述证明你的答案。
    •  2)标识出每个关系的备用键,如果没有备用键,做适当的论述证明你的答案。
    •  3)标识出每个关系的外键和完整性约束,并做适当的论述证明你的答案。

    2.列出每个关系的属性名,和每个属性的域(数据类型和格式),并做适当的论述证明你的答案。

    在每一个HTML表格中,列出至少四行正确的数据(可自己假设,要求合理、符合实际即可),将你的答案书写在一个名为BookPublisher.html的HTML页面中提交:

    BookPublisher.html:

    Books

    Primary Author<varchar(20)> Title<varchar(50)> ISBN(Primary Key)<char(12)> PublisherID(FOREIGN Key)<int> Edition<varchar(10)> Date of Publication<date> Price<float(4, 2)> Book Description<varchar(200)>
    赵静 数学建模与数学实验 9787040400038 1 第4版 2000.11 22.00 指导数学建模与数学实验
    许建平 英汉互译实践与技巧 9787302146728 2 第4版 2012.8 38.00 本书是为非英语专业的大学生及研究生编写的英汉互译教程。
    庄茁 基于ABAQUS的有限元分析和应用 9787302188162 2 第2版 2006.5 69.00 《基于ABAQUS的有限元分析和应用》是基于ABAQUS软件6.7版本进行有限元分析与应用的入门指南和工程分析与科学研究教程
    王正林 精通MATLAB 9787121187315 3 第3版 2013.1 69.00 紧密结合实例,对MATLAB的使用进行了全面且详尽的阐述,并通过大量的实例讲述如何实现MATLAB的基本操作和实际使用。
    路遥 平凡的世界(套装共3册) 9787530212004 4 第1版 2012.3 26.60 《平凡的世界(套装共3册)》是一部现实主义小说,也是小说化的家族史。

    books论述:

    上面是Books表的数据,并在列名表明了数据类型及长度和主外键:

    • 1.Primary Author <varchar(20)>:可变字符串,最长20

    完整性约束:PrimaryAuthor VARCHAR(20) NOT NULL DEFAULT "未知作者",

    • 2.Title <varchar(50)>:可变字符串,最长50

    Title VARCHAR(50) NOT NULL DEFAULT "默认标题",

    • 3.ISBN <char(12)>(Primary Key):主键,因为ISBN对于每本书是唯一的,满足主键是唯一且不为空的条件,用以标识唯一一本书。

    ISBN CHAR(13) NOT NULL DEFAULT "0000000000000" PRIMARY KEY,

    • 4.PublisherID<int>(FOREIGN Key):int类型、外键,

    PublisherID INT(4) NOT NULL DEFAULT 0 ,

    FOREIGN KEY (PublisherID) REFERENCES publisher(PublisherID)

    因为Books和Publishers表拥有相同的属性PublisherID,并且PublisherID是Publishers表的主键,使用其作为外键,两个表就可以建立联系 ;

    • 5.Edition<varchar(10)>:可变字符串,最长10

    Edition VARCHAR(10) NOT NULL DEFAULT 0 ,

    • 6.Date of Publication <date>:日期类型

    DateofPublication DATE NOT NULL DEFAULT '1970-01-01' ,

    • 7.Price<float(4, 2)>:float类型,小数点两位

    Price float(4, 2) NOT NULL DEFAULT 0 ,

    • 8.Book Description<varchar(200)>:可变字符串,最长200

    BookDescription varchar(200) NOT NULL DEFAULT '描述为空' ,

    主键(PK): ISBN,因为ISBN对于每本书是唯一的,满足主键是唯一且不为空的条件,用以标识唯一一本书。

    外键(FK): PublisherID为Books和Publishers表拥有相同的属性PublisherID,并且PublisherID是Publishers表的主键,使用其作为外键,两个表就可以建立联系 ;

    备用键(AK):没有备用键,除主键ISBN外其他列都无法唯一标识一本书,存在相同标题、出版社、价格、出版时间等的书籍。

    Publishers

    PublisherID (Primary Key)<int> Name<varchar(50)> Address<varchar(100)>
    04 高等教育出版社 北京市西城区德胜门外大街4号
    302 清华大学出版社 北京市海淀区清华大学出版社
    5053 电子工业出版社 北京市丰台区万寿路南口金家村288号华信大厦
    5302 北京十月文艺出版社 北京市海淀区十月文艺出版社
    • 1.PublisherID <int>(Primary Key):主键,因为PublisherID可以唯一标识出版社;
    • 2.Name<varchar(50)>:可变字符串,最长50;
    • 3.Address <varchar(100)>:可变字符串,最长100。

    主键(PK):PublisherID,因为PublisherID可以唯一标识出版社;

    外键(FK):显然没有;

    备用键(AK):Name,出版社名可以唯一标识出版社。

    第二部分(part-2)

    按照要求书写SQL语句,将你的答案书写在一个名为createDB.Sql的文件中提交。

    1)使用CREATE TABLE关键字创建两个关系,要求标识出每个关系的主键和备用键。

    2)使用INSERT关键字向每个关系中插入四行数据(第一你部分列出的数据)。

    3)书写SQL语句查询出某两个作者……

    4)书写SQL语句查询出某本书的出版社名字。

    文件createDB.Sql:

     文件Rel-ops.txt:

    SELECT Title,Price
    FROM books
    where PrimaryAuthor='路遥' OR PrimaryAuthor='许建平';
    此语句完成查询出某两个作者(例如"路遥" 、 "许建平")出版的所有书的标题和价格;
    解释:从books表中选择Title,Price两列,约束条件为作者是"路遥"或"许建平"。

    SELECT p1.Name
    FROM publisher p1,books b1
    where p1.PublisherID=b1.PublisherID AND b1.Title='精通MATLAB';

    使用连接查询,p1、b1分别是publisher和books中的对象,使用PublisherID连接两者,令b1.Title='精通MATLAB',选择p1.Name得出查询结果

     

    除特别注明外,本站所有文章均为王柏元的博客原创,为了尊重作者的劳动成果,转载请注明出处http://wangbaiyuan.cn/ssd7-ex1-relational-database.html,如果你觉得这篇文章对你有用,可以点击文章下面的“赞助作者”打赏作者!

    关于
    记录生活,镌刻心路;泼洒文墨,分享技术!王柏元的博客致力于IT经验交流,并原创翻译引进外文文章,打开IT国际化视野

    发表评论

    格式

    暂无评论

    登录

    忘记密码 ?

    您也可以使用第三方帐号快捷登录

    切换登录

    注册