请根据你对铁路购票业务流程的理解,完成铁路购票系统的数据库设计,以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的了解与实际运用(重难点);
其他:对买票系统的了解以及逻辑性。
设计(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模型没有满分小编表示理解与同情==
例子:
https://www.cnblogs.com/miaomiaomiaomia/p/9126976.html
祝大家期末取得好成绩!!!
数据(蓄水)库作业批改之三——56.数据库设计(铁路购票系统)
原文:https://www.cnblogs.com/miaomiaomiaomia/p/9126990.html