数据库原理--机票预定系统
机票信息(座位号,航班号,座位信息,机票类型),“座位信息”为主码。 退票信息_旅客(订单号,旅客姓名),(订单号,旅客姓名)为主码。同时“订单号”为引用“退票信息”关系模式的订单号的外码,“旅客姓名”为引用“旅客”关系模式的旅客的外码。
旅客_取票通知和账单(旅客姓名,账单号),(旅客姓名,账单号)为主码。同时“旅客姓名”为引用“旅客”关系模式的旅客姓名的外码,“账单号”为引用“取票通知和账单”关系模式的账单号的外码。
旅客_航班信息(旅客姓名,航班号),(旅客姓名,航班号)为主码。同时“旅客姓名”为引用“旅客”关系模式的旅客姓名的外码,“航班号”为引用“航班信息”关系模式的航班号的外码。
机票信息_航班信息(座位号,航班号),(座位号,航班号)为主码。同时“座位号”为引用“机票信息”关系模式的座位号的外码,“航班号”为引用“航班信息”关系模式的航班号的外码
(2)数据库的结
根据总体E-R图设计基本表结构,其相应的定义如下:
表3-1 航班信息系统的结构
表3-2机票信息表
表3-3旅客信息表
数据库原理--机票预定系统
表3-5退票信息表
四 物理结构设计
数据库物理结构设计是指设计出数据库的物理结构模型,他是数据库在物理设备上的具体实现。
经过数据库的需求分析和概念模型设计,得到数据可的逻辑结构,现在可以把设计好的逻辑结构在SQL上建立数据库及数据表。 4.1表的建立和载入
需要明确数据库需要建几张表,以及每张表包括的属性。在建立每张表的过程中,需要对表进行字段属性的设置。在机票预订系统中,要建立5张表,分别是:航班信息表,航班座位情况表,旅客订票信息表,取票和账单信息表,退票信息表。 4.2视图的建立
视图是查看数据库的一种方式。视图提供了存储预定义的查询语句作为数据库中的对象一备以后使用的能力。视图是一种逻辑对象,是一种虚拟表。
在机票预订系统中,我建立了两个师徒,分别是航班和座位视图旅客和取票视图。他们分别通过飞机编号也就是flight number项和旅客信息也就是passage number 项联系起来。 4.3索引的建立
索引是一个单独的,物理的数据库结构,他是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据项的逻辑指针清单。
五 数据库的实施和代码的编制
登录sql server 2005 management在其中创建名为试卷管理系统的数据库,运用查询设计器创建。
/*创建库*/
create database plane_Data use plane_Data /*创建相应的表*/ 创建航班信息表:
CREATE TABLE 航班信息 (
数据库原理--机票预定系统
flightnumberdecimal primary key NOT NULL identity, takeoffplace varchar(50) unique NULL , destination varchar(50) not NULL , price bigint not NULL
) ;
机票信息表:
CREATE TABLE 机票信息 (
seatnumber bigint primary key NOT NULL identity , flightnumber decimal (10) unique NULL , seatmessage bigint not NULL
flightticketype varchar (50) not null ) ;
创建旅客信息表:
CREATE TABLE 旅客信息 (
passagename int primary key NOT NULL identity, id varchar (20) not NULL ,
telephonenumber varchar (20) not NULL , sex varchar(50) not NULL , ) ;
创建取票和账单信息表:
CREATE TABLE 取票和账单信息 (
gettickettime bigint primary key NOT NULL identity, passagename varchar (20) not NULL , flightnumber decimal (20) not NULL , seatnumber decimal (20) not NULL ,
flightticketnumber varchar(20) not NULL , );
创建退票信息表:
CREATE TABLE 退票信息 (
orderform int primary key Not NULL identity , passagename varchar (20) unique NULL , telephonenumber decimal not NULL , id varchar(20) not NULL ) ;
创建ddl触发器:
create trigger notdelete on all sever
for drop_database as
print ‘不能删除数据’ rollback go
分别在航班信息表,机票信息表,旅客信息表,取票通知,账单信息表这四个表建立触发器,对于表中的添加和修改数据提示错误信息。