SQL Server 数据库原理 实验六 简单数据库应用系统设计

该实验旨在通过设计与实现汽车维修、科研项目申报或学生宿舍管理系统的数据库,掌握数据库设计步骤,包括概念设计(ER模型)、逻辑设计(关系模型)和物理设计。实验中,学生需选择一个主题,如学生宿舍管理系统,完成实体和关系的定义,如学生、宿舍和管理员之间的关系,并将ER模型转化为关系模式,进行规范化处理,最后在DBMS上创建数据库并规划索引及视图。
摘要由CSDN通过智能技术生成

如果你对其他数据库原理的实验感兴趣,请考虑阅读我的专栏

SQL Server实验系列

实验六 简单数据库应用系统设计与实现

实验目的:
(1)理解并能运用数据库设计的常见步骤来设计满足给定需求的概念模型(ER模型)和关系数据模型;
(2)能结合有关的指南对模型进行优化处理。
(3) 能够在某主流DBMS上创建数据库模式、所建数据库模式满足用户的基本业务需求;

实验内容:
给出如下选题,每组同学任选一个选题进行相应的设计与实现。具体选题如下:
(1)某汽车维修部门的维修工单如下表所示:
在这里插入图片描述
(2)某科技管理部门欲开发一个科研项目申报与评审系统,涉及的部分信息如下:
项目:项目编号,项目名称,申请者,期限,金额,项目描述。
项目类别:类别编号,类别名称。
专家:专家编号,姓名,职称,单位。
其中:根据项目类别,每个申报项目需由对应领域的多位专家进行评审;每位专家只参与一类项目的评审,评审时要记录评审日期和评审意见。
(3)某学生宿舍管理系统,涉及的部分信息如下:
学生:学号,姓名,性别,专业,班级。
寝室:寝室号,房间电话。
管理员:员工号,姓名,联系电话。
其中:每个寝室可同时住宿多名学生,每名学生只分配一个寝室;每个寝室指定其中一名学生担当寝室长;每个管理员同时管理多个寝室,但每个寝室只有一名管理员。

实验过程:(选择:学生宿舍管理系统)
每组同学从以上选题中任选一个进行相应的设计与实现。要求如下:
(1)从简单的选题语义出发,按照数据库设计步骤,分别完成如下内容:概念设计(ER模型),给出满足需求的最终全局ER图,要求模型尽量精简,消除不必要的冗余,并给出理由或说明。
在这里插入图片描述

  • 实体:

    • 学生:属性有学号,姓名,性别,专业,班级
    • 宿舍:属性有房间号,房间电话
    • 管理员:属性有员工号,姓名,联系电话
  • 实体间关系:

    • 一个宿舍有多名同学住宿,一名同学只分配一个宿舍
    • 一个管理员管理多个宿舍,一个宿舍只能有一个管理员
    • 每间宿舍的同学中,要挑选一个寝室长

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

规范化 定义
第一范式 确保字段原子性(确保每列不可再分)
第二范式 非键字段必须依赖键字段(一个表描述一件事)
第三范式 消除传递依赖 (所有非键字段不能有传递依赖)

(方式1)

  • 学生:(学号、姓名、性别、专业、班级、寝室号)
    • 主键:学号
    • 外键:寝室号
  • 寝室:(寝室号、房间电话、寝室长学号、员工号)
    • 主键:寝室号或寝室长学号
    • 外键:员工号、寝室长学号
  • 管理员:(员工号、姓名、联系电话)
    • 主键:员工号

(方式2)

  • 学生:(学号、姓名、性别、专业、班级)

    • 主键:学号
  • 寝室:(寝室号、房间电话)

    • 主键:寝室号
  • 管理员:(员工号、姓名、联系电话)

    • 主键:员工号
  • 住宿:(寝室号,学号)

    • 主键:学号
    • 外键:寝室号、学号
  • 学生管理寝室:(寝室号,寝室长学号)

    • 主键:寝室号、寝室长学号
    • 外键:寝室号,寝室长学号
  • 管理:(寝室号,员工号)

    • 主键:寝室号
    • 外键:寝室号,员工号

(3)物理设计,在某一主流DBMS中创建数据库,根据业务需求规划适当索引(包括聚簇索引和非聚簇索引),并设计必要的用户视图(即外模式),完成相关查询或更新要求。

方式1
创建表


                
数据库应用系统设计与实现 实验类型:设计实验地点:2楼312 实验时间:12月14日、21日周五1-3/5-7节 实验内容: 系统概述: 某银行需要开发ATM存取款机系统实现如下功能: 1)开户(到银行填写开户申请单,卡号自动生成) 2)取款 3)存款 4)查询余额 题目要求: 一、建库、建表、建约束 1、使用SQL创建表 客户信息表userinfo 字段名称 说明 备注 customerID 顾客编号 自动编号(标识列),从1开始,主键 用序列sequence实现,用其属性:nextval customerName 开户名 必填 PID 身份证号 必填,智能是18位或15位,唯一约束 check约束length()函数 telephone 联系电话 必填,11位手机号 check约束,’[0-9]’ address 居住地址 银行卡信息表cardinfo 字段名称 说明 cardID 卡号 必填,主键,银行的卡号规则和电话好吗一样,一般前8位代表特殊含义,如某综合某支行等,假定该行要求其营业厅的卡号格式为10103576**** ***开始,每4位号码后有空格,卡号一般是随机产生。 curType 货币种类 必填,默认为RMB savingTate 存款类型 活期/定活两便/定期 openDate 开户日期 必填,默认为系统当前日期 openMoney 开户金额 必填,不低于1元 balance 余额 必填,不低于1元,否则将销户 pass 密码 必填,6位数字,开户时默认为6个“6” IsReportloss 是否挂失 必填,是/否值,默认为“否” customerID 顾客编号 外键,必填,表示该卡对应的顾客编号,一位顾客允许办理多张卡号 交易信息表transinfo 字段名称 说明 transDate 交易日期 必填,默认为系统当前日期 cardID 卡号 必填,外键 transType 交易类型 必填,只能是存入/支取 transMoney 交易金额 必填,大于0 remark 备注 可选,其他说明 2、使用SQL语言在每个表上添加约束 主键约束、外键约束、CHECK约束、默认约束、非空约束 二、插入测试数据 使用SQL语言向每个表中插入至少3条记录 三、模拟常规业务 1)修改客户密码 2)办理银行卡挂失 3)统计银行资金流通余额和盈利结算 银行资金流通余额=总存入金额-总支取金额 盈利结算=总支取金额 * 0.008 – 总存入金额 * 0.003 4)查询本周开户的卡号,显示该卡相关信息 5)查询本月交易金额最高的卡号 6)查询挂失账号的客户信息 四、利用视图实现数据查询 1)为客户提供以下3个视图供其查询该客户数据 客户基本信息:vw_userInfo 银行卡信息:vw_cardInfo 银行卡交易信息:vw_transInfo 2)提供友好界面,要求各列名称为中文描述 3)调用创建的视图获得查询结果 五、用存储过程实现业务处理 1)完成开户业务 2)完成取款或存款业务 3)根据卡号打印对账单 4)查询、统计指定时间段内没有发生交易的账户信息
第六章 嵌入式SQL(E-SQL)简介 3 第一节 什么是嵌入SQL语言? 3 1.1 嵌入SQL程序的组成元素 3 1.2 什么是静态SQL和动态SQL? 4 1.3 什么是SQLCA? 4 1.4 什么是SQLDA? 5 第二节 SYBASE SQL SERVER嵌入式SQL语言 5 2.1 一个嵌入SQL语言的简单例子 5 2.2 嵌入SQL的处理过程 6 2.3 嵌入SQL语句总览 7 2.3.1 宿主变量 7 2.3.2 连接数据库 12 2.3.3 数据的查询和修改 13 2.3.4 游标的使用 13 2.3.5 SQLCA 15 2.3.6 WHENEVER 16 2.3.7 批处理 18 2.3.8 事务 18 2.4动态SQL语句 18 2.4 .1 动态修改 19 2.4.2 动态游标 20 2.4.3 SQLDA 23 2.4.4 DESCRIBE语句 27 2.5 两个例子程序 27 2.5.1 TELECOM程序 27 2.5.2 ADHOC程序 29 第三节 IBM DB2嵌入SQL语言 35 3.1 一个简单示例 35 3.2 嵌入SQL语句 37 3.2.1宿主变量 37 3.2.2单行查询 39 3.2.3多行查询 39 3.2.4插入、删除和修改操作 40 3.2.5 SQLCA 43 3.2.6事务 45 3.3 DB2的嵌入SQL程序处理过程 46 3.4 DB2的动态SQL嵌入语句 53 3.4.1 基本方法 53 3.4.2 动态游标 55 3.4.3 SQLDA 55 第四节 ORACLE数据库的嵌入SQL语言 66 4.1 基本的SQL语句 66 4.1.1宿主变量和指示符 66 4.1.2 查询 68 4.1.3 修改数据 68 4.1.4 游标 68 4.2 嵌入PL/SQL 71 4.3 动态SQL语句 72 4.3.1 ORACLE动态SQL语句的一些特点 72 4.3.2 使用动态SQL的四种方法 72 4.3.3 SQLDA 75 第五节INFORMIX的嵌入SQL/C语言 89 5.1 一个简单的入门例子 89 5.2 宿主变量 91 5.3 嵌入SQL的处理过程 96 5.4 动态SQL语言 96 5.4.1 SQLDA 97 第六节MICROSOFT SQL SERVER7嵌入式SQL语言 105 6.1 一个嵌入SQL语言的简单例子 105 6.2 嵌入SQL的处理过程 106 6.3 嵌入SQL语句 112 6.3.1 声明嵌入SQL语句中使用的C变量 112 6.3.2 连接数据库 115 6.3.3 数据的查询和修改 115 6.3.4 游标的使用 116 6.3.5 SQLCA 117 6.3.6 WHENEVER 118 6.4动态SQL语句 119 6.4 .1 动态修改 119 6.4.2 动态游标 120 6.4.3 SQLDA 122 6.4.4 DESCRIBE语句 130 6.5 API 130
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值