首页 > 数据库技术 > 详细

数据(蓄水)库作业批改之三——56.数据库设计(铁路购票系统)

时间:2018-06-02 22:10:45      阅读:331      评论:0      收藏:0      [点我收藏+]

数据(蓄水)库作业批改之三——56.数据库设计(铁路购票系统)

 

一.作业要求

请根据你对铁路购票业务流程的理解,完成铁路购票系统的数据库设计,以E-R模型展示你的设计方案并实现为数据库,具体要求请下载“课程资料中的“数据库实验报告模板.doc”。最终提交你的实验报告WORD版。要求Word文件更名为“”学号姓名数据库设计实验报告“的格式

 

二.作业具体要求

实验目的:

1、根据需求完成数据库设计建模,熟练使用E-R模型;

2、在数据库设计方案基础上实现为数据库。

实验任务:

1、根据业务流程抽象出相关实体及关系;

2、使用E-R模型实现设计方案;

3、基于E-R模型实现为可运行的数据库。

请完成以下内容:

1、以E-R模型展示你的设计方案,要求包含完整的设计,有实体名称、实体属性、主键,并在图中体现实体间的关系;

注:E-R模型,可以手绘后拍照,也可以直接在WORD中绘制,还可以使用Visio绘制,如果愿意深入学习,可以尝试使用ERWIN等数据库设计工具完成(该软件可网络搜索试用版)。以上方式任选其一,请展示你的方案于下方空白处

 

三.知识要点

对E-R模型的了解与认识到熟悉运用;

数据库基本代码的运用;

对范式1NF,2NF,3NF的了解与实际运用(重难点);

其他:对买票系统的了解以及逻辑性。

 

四.评判RULES

设计(3‘)     

评分细则如下:      

E-R图例规范得1分,否则给0.5,有设计方案就至少0.5,所谓规范是E-R图的图例是否应用了Chen方法或Crow‘s foot方法中的图例,如果规范采用则给1分1,否则0.5;         

实体及联系设计恰当给1分,基本原则是实体本身反映一类事物的本质;        

范式设计合理得1分,如有违反范式,特别是二和三范式的,得0.5分。       

代码(2‘)     

评分细则如下:      

完全没有代码直接给0,如有代码,参照以下评判规则:      

提供了代码,并且和实体能够对应得1分,如有缺失代码或者单纯拷贝作业代码并没有准确更改,酌情给分0.5。         

代码正确运行得1分,如果运行中有错误,给0.5分。          

复议:对于评判不准的部分,可自主寻找志愿者中的搭档,尝试使用双评方式,即两个评判人对同一份作业进行评判,最终经过两位评判者协商确定被评判人的成绩,这种方法仅在对设计作业难以清除判断的情况下使用。      

 

五.参考答案(因为一千个读者眼里有一千个哈姆雷特)

“E-R”模型(因为不太好处理图形= =请谅解):

技术分享图片

代码:

 

Use master
GO

If exists (select * from dbo.sysdatabases where name = Ticket_system) 
drop database Ticket_system
GO

create database Ticket_system
on
     (name = Ticket_system_data, 
          filename = e:\Ticket_system_data.mdf,
         size = 10mb,
         maxsize = 50mb,
         filegrowth = 10%)
log on
     (name = Ticket_system_log,
      filename = e:\Ticket_system_log.ldf,
          size = 5mb,
          maxsize = 10mb,
      filegrowth = 2mb)
GO

create table Train
(    train_number char(5) not null primary key,
    first_station int not null,
    last_station int not null,
    departure_time datetime not null,
    arrival_time datetime not null
)
GO

insert into Train
    values(G1, 0, 2, 10:30:00, 14:45:00)
insert into Train
    values(G2, 3, 5, 15:30:00, 19:45:00)
insert into Train
    values(G3, 6, 9, 9:45:00, 14:00:00)
insert into Train
    values(G4, 10, 13, 14:45:00, 19:00:00)
insert into Train
    values(G5, 14, 15, 13:00:00, 16:00:00)
insert into Train
    values(G6, 16, 17, 17:30:00, 20:30:00)
GO
select* from train
create table Point
(    number int not null primary key,
    name char(10) not null,
    dwell_time time not null,
    pre_station int null,
    next_station int null
)
GO

insert into Point
    values(0, 北京, 00:00:00, null, 1)
insert into Point
    values(1, 泰安, 00:10:00, 0, 2)
insert into Point
    values(2, 上海, 00:45:00, 2, null)
insert into Point
    values(3, 上海, 00:00:00, null, 4)
insert into Point
    values(4, 苏州北, 00:05:00, 3, 5)
insert into Point
    values(5, 沧州北, 00:15:00, 4, 6)
insert into Point
    values(6, 北京, 00:45:00, 5, null)
/*以此类推*/
GO
select* from Point
create table Message
(    person_id char(18) not null,
    train_id char(5) not null,
    departure_station int not null,
    arrival_station int not null,
    ticket_price float not null,
    time_spent time not null,
    seat_number char(5) not null,
    purchase_time datetime not null,
    ticket_id char(18) not null primary key
)
GO

insert into Message
    values(612323182903249912, G2, 4, 5, 212.50, 02:15:00, 05A12, 2018-04-10, 000000000000000001)
insert into Message
    values(612323182903249912, G1, 0, 3, 425.00, 04:15:00, 06B12, 2018-04-10, 000000000000000002)
insert into Message
    values(612323182903249912, G3, 7, 8, 125.00, 01:00:00, 12A14, 2018-04-14, 000000000000000003)
GO
select* from Message 
create table Person
(    user_id char(18) not null primary key,
    user_name char(10) not null,
    user_sex bit not null
)
GO
select* from Person 
insert into Point
    values(612323182903249912, 王子一, 1)
GO

(以上为某孙同学提交的改写后的作业,值得参考一下!)

 

六.作业情况

技术分享图片

 

 (此图得点开才口以!)

 

七.作业评价

具体详见表。

总体来说大家对范式比较了解,个别不太会用。不过没关系,小编会把其解释再详细说一遍。

对于大家E-R模型没有满分小编表示理解与同情==

 

八.补充说明

关系数据库中的几种设计范式

1 第一范式(1NF)
在任何一个关系数据库中,第一范式(1NF)  是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
在第一范式(1NF)中表的每一行只包含一个实例的信息。

简而言之,第一范式就是无重复的列。

2 第二范式(2NF)
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。这个唯一属性列被称为主关键字或主键、主码。
第二范式(2NF)要求实体的属性完全依赖于主关键字。

简而言之,第二范式就是非主属性非部分依赖于主关键字。

3 第三范式(3NF)
满足第三范式(3NF) 必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。

简而言之,第三范式就是属性不依赖于其它非主属性。

例子:

https://www.cnblogs.com/miaomiaomiaomia/p/9126976.html

 

九.其他

祝大家期末取得好成绩!!!

 

数据(蓄水)库作业批改之三——56.数据库设计(铁路购票系统)

原文:https://www.cnblogs.com/miaomiaomiaomia/p/9126990.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!