文章目录

  • 一、实验目的:
  • 二、实验内容:
  • 三、题目:Newspaper DataBase Design
  • 四、ER图:
  • 五、数据库实体关系设计:
  • 六、实验小结:

一、实验目的:

  1. 熟悉数据库设计基本步骤;

  2. 练习数据库需求分析方法,并能给出数据字典;

  3. 练习 ER 图建模,掌握 ER 模型向关系模式的转化。

二、实验内容:

  1. 从用户需求出发,按照数据库设计步骤,分别完成如下内容:概念结构设计(ER 模型),给出满足需求的最终全局 ER 图,要求模型尽量精简,消除不必要的冗余,并给出理由或说明;

  2. 逻辑结构设计(关系模式),把 ER 模型转换成适当的关系模式,并进行适当地规范化,设计相关完整性约束。

三、题目:Newspaper DataBase Design

Newspaper System
报纸系统

A newspaper is setting up a website where people can write, read and comment on news stories. Your job is to design a database that can record the information needed for the website to work.
一家报纸正在建立一个网站,人们可以在那里撰写、阅读和评论新闻报道。你的工作是设计一个数据库,可以记录网站工作所需的信息。

The website lists a number of stories, each classified within one of about 10 sections (‘Local news’, ‘World news’,‘Opinion’, ‘Sport’, ‘Technology’ etc).
该网站列出了许多故事,每一个故事都被归入10个栏目(“本地新闻”、“世界新闻”、“观点”、“体育”、“科技”等)中的一个栏目里。

Each content of each story consists of a piece of text (the manager would prefer there to be no limit on the size) as well as a headline and a short “lede” (a lede is a sentence of 10 to 20 words that summarizes the story).
每个故事的每一个内容都由一段文字(经理希望没有大小限制)以及一个标题和一个简短的 “lede”(lede是一个10到20个单词的句子,用来总结故事)。

Each story is written by one or more of our authors, who submit the story to our database on a particular date.
每个故事都是由我们的一个或多个作者撰写的,他们在特定日期将故事提交到我们的数据库。

If a story is considered worthy, it is edited by one of our editors, assigned to a section, and then published on a particular date.
如果一个故事被认为是有价值的,它将由我们的一位编辑编辑,分配到一个部分,然后在一个特定的日期出版。

Authors and editors are staff members.
作者和编辑都是工作人员。

It is not possible to be both an author and an editor.
既当作家又当编辑是不可能的。

About each staff member we store their name and when they join (and later leave) the newspaper.
关于每一位员工,我们会保存他们的名字,以及他们何时加入(后来离开)报纸。

We want to organize the website so that readers can click on a section, or an author’s name, and see a list of all the relevant stories.
我们希望组织网站,这样读者可以点击某个部分或作者的名字,并看到所有相关故事的列表。

On the main page we list each story’s title (shown as a headline) and lede.
在主页上,我们列出每个故事的标题(作为标题显示)和lede。

Then if the reader clicks on the headline, we display the entire story.
然后,如果读者点击标题,我们就会显示整个故事。

Our readers, if they wish, can choose to register themselves in our database, recording a username and password (they do not need to record their real name).
我们的读者,如果他们愿意,可以选择在我们的数据库中注册,记录用户名和密码(他们不需要记录他们的真实姓名)。

Readers who register can then comment on stories, and on other readers’ comments.
注册的读者可以对故事和其他读者的评论进行评论。

They can also click “Like” on a story – and if they change their mind later, they can “Unlike” it.
他们还可以点击某个故事的“喜欢”按钮——如果他们后来改变了主意,他们可以“不喜欢”这个故事。

When we display a story we show the number of Likes the story has received and list out the comments below it.
当我们显示一个故事时,我们会显示这个故事收到的赞数,并在下面列出评论。

With each comment we show the username of the person who commented, and the time they commented.
在每条评论中,我们都会显示评论人的用户名以及他们评论的时间。

We aim for brevity in comments, and restrict them to 1024 characters.
我们的目标是在评论中保持简洁,限制在1024个字符以内。

四、ER图:

根据题意,画出 ER图:

其中关系模式如下:

  • 员工(姓名,加入日期,离开日期)
  • 新闻(标题,文本,简介)
  • 读者(用户名,密码)
  • 提交(提交日期,员工姓名,新闻)
  • 分类(栏目,新闻)
  • 评论(评论时间,新闻,读者用户名)
  • 评论评论(评论时间,评论,读者用户名)
  • 点赞(新闻,读者)

每个关系模式的主码、外码如下:

  • 员工(主码是姓名,无外码)
  • 新闻(主码是标题和文本,无外码)
  • 读者(主码是用户名,无外码)
  • 提交(主码是员工的姓名和新闻,外码是员工的姓名)
  • 分类(主码是栏目和新闻,无外码)
  • 评论(主码是新闻和读者用户名,外码是读者用户名)
  • 评论评论(主码是评论和读者用户名,外码是读者用户名)
  • 点赞(主码是新闻和读者用户名,外码是读者用户名)

五、数据库实体关系设计:

create table staff
(
Name varchar(10) primary key,
Join_date date,
Leave_date date
);create table story
(
Headline VARCHAR(10),
Text varchar(100),
Lede varchar(50),
primary key(Headline,Text)
);create table reader
(
Username varchar(20) primary key,
Password varchar(20)
);create table submit
(
Submit_date date,
Name VARCHAR(5),
Headline VARCHAR(10),
primary key (Name,Headline),
foreign key (Name) references staff(Name)
);create table class
(
Section varchar(5),
Headline VARCHAR(10),
primary key (Section,Headline)
);create table comment
(
Comtime date,
Headline VARCHAR(10),
Name varchar(10),
primary key (Headline,Name),
foreign key(Name) references staff(Name)
);create table comment_comment
(
Comtime date,
Comment varchar(50),
Name varchar(10),
primary key (Comment,Name),
foreign key(Name) references staff(Name)
);create table praise
(
Headline VARCHAR(10),
Name varchar(10),
primary key (Headline,Name),
foreign key(Name) references staff(Name)
);

设计好的数据库模型如下:

六、实验小结:

应用数据库设计的范式理论对初始关系模型进行优化。数据库设计的三大范式如下:

  • 第一范式:每一个分类必须是一个不可分的数据项。属性不可再分,确保每列的原子性。

  • 第二范式:要求每个表只描述一件事情,每条记录有唯一标识列。

  • 第三范式:数据库表中不包含已在其它表中已包含的非主关键字信息。

参考文章:https://blog.csdn.net/COCO56/article/details/103470262

数据库系统(五)——数据库设计相关推荐

  1. 实验五——数据库设计实验

    实验五--数据库设计实验 一.实验题目 二. 实验内容和要求 三.实验步骤 1.分析问题 2.概念结构设计 3.逻辑结构设计 四.实验心得体会 一.实验题目 数据库设计实验 二. 实验内容和要求 掌握 ...

  2. 数据库 ----- 实验五:题目:实验五 数据库设计与数据库编程

    [实验目的和要求] 1.理解和掌握数据库设计的方法和主要步骤: 2.熟练掌握概念结构的建立方法和常用表达工具(E-R 图): 3.熟练掌握概念结构到逻辑结构的转换原则: 3.掌握SQL 流程控制语句. ...

  3. 数据库设计 数据库系统概论(第五版)

    萨师煊,王珊.数据库系统概论[M].第五版.北京:高等教育出版社,2014. 1数据库设计概述 1.1什么是数据库设计? 数据库设计是指对于一个给定的应用环境,设计一个优良的数据库逻辑模式和物理结构, ...

  4. 《教妹学数据库系统》(五)逻辑数据库设计(上)

    hello大家好,今天我们来学习逻辑数据库设计.教妹学数据库,没见过这么酷炫的标题吧?"语不惊人死不休",没错,标题就是这么酷炫. 我的妹妹小埋18岁,校园中女神一般的存在,成绩优 ...

  5. 【数据库系统原理】数据库设计

    数据库设计 文章目录 数据库设计 一.数据库设计概述 1.数据库设计的步骤 2.数据库设计概念 3.数据库设计的目标 4.数据库设计的特点 5.可行性分析 二.需求分析 1.需求分析阶段的任务 2.需 ...

  6. (数据库系统概论|王珊)第七章数据库设计-第三节:概念结构设计

    pdf下载:密码7281 专栏目录首页:[专栏必读](考研复试)数据库系统概论第五版(王珊)专栏学习笔记目录导航及课后习题答案详解 文章目录 一:E-R模型 (1)两个实体之间的联系 ①:一对一联系( ...

  7. 【数据库系统概论】-数据库设计

    数据库设计概念 在数据库领域内,通常把使用数据库的各类信息系统都统称为数据库应用系统. 数据库设计,广义的讲,是数据库及其应用系统的设计,即设计整个数据库应用系统.狭义的讲,是设计数据库本身,即设计数 ...

  8. 第五章 数据库设计和事务 ① 笔记

    第五章 数据库设计和事务 ① 笔记 1.内容回顾 2.本章重点 3.具体内容 3.1:数据库三大范式(设计规则)  面试题:(重要) 第一范式(1NF): 第二范式(2NF): 第三范式设计表: 3 ...

  9. (数据库系统概论|王珊)第七章数据库设计-第一节:数据库设计概述

    注意:此部分内容和软件工程的知识点重合较多,更多请点击[免费分享]软件工程核心知识点 本章较分散,各节导航如下 (数据库系统概论|王珊)第七章数据库设计-第二节:需求分析 (数据库系统概论|王珊)第七 ...

最新文章

  1. Ubuntu iso镜像文件写入U盘
  2. Java protect属性
  3. Android 读取assets文件下的txt文件
  4. Java访问修饰符public,private,protected,以及不写(默认)时的区别?
  5. todo已完成任务_重要主干街路已完成清雪任务
  6. 星益云聚合收银台v1.45开源完整版【最终版本】
  7. weightedrandomSamplers(2)
  8. IOS控件圆角、描边
  9. 手机通话记录重复显示怎么处理_手机通话记录怎么找回
  10. Audio HAL 通话录音上下行分离
  11. 旅游网站毕业设计,旅游网站网页设计设计源码,旅游网站设计毕业论文
  12. Cocos2D:塔防游戏制作之旅(十)
  13. 英才计划计算机潜质测评试题,opq(opq管理潜质测评试题)
  14. 远程桌面无法连接 计算机死机,远程桌面被远程的机器就死机解决方案
  15. 中国口腔医疗行业发展模式与投资战略规划分析报告2022-2028年版
  16. 大数据----Hive学习(6)----Hive 基本操作4
  17. 2840页的计算机毕业论文!德州奥斯汀华人博士究竟写了啥?
  18. SSID、BSSID、ESSID
  19. c语言医生值班题目讲解,C趣味程序百例(17)哪个大夫哪天值班
  20. load-time-weaver spring-configured

热门文章

  1. mysql 语句_如何记录MySQL执行过的SQL语句
  2. 化工热力学:第三章 纯流体的热力学性质
  3. AAAI 2022 | 基于词对关系建模的统一NER,刷爆14个中英NER数据集
  4. 如何使ResNet优于EfficientNet?改进训练方法和扩展策略就可以
  5. 预训练生成模型:结合VAE与BERT/GPT-2提高文本生成效果
  6. 复旦大学邱锡鹏教授:NLP预训练模型综述
  7. 弗吉尼亚理工大学(Virginia Tech)NCR校区招收计算机硕士学位研究生
  8. NIM博弈+SG函数求解
  9. centos安装mysql密码_centos 安装mysql并设置密码
  10. JavaScript + Thymeleaf + Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(十八)模板脚本