数据库原理及应用 《数据库原理及应用》课程组 Jmun_jsjxy@163.com 2007.3 荆楚理工学院.

Slides:



Advertisements
Similar presentations
7.2 数据模型 大学计算机基础. 7.2 数据模型 主要内容 数据模型简介 常用数据模型 常见数据库系统及开发工具.
Advertisements

2014 年 10 月. 学生入学考试 15 位编号 号工号 ****** 北科 MBA 网址: 如: 初试密码为身份证 后六位,登录成功 后可进行修改。
1 计算机软件考试命题模式 计算机软件考试命题模式 张 淑 平 张 淑 平. 2  命题模式内容  组织管理模式 − 命题机构和人员组成 − 命题程序  试卷组成模式.
数据结构的引入. 通讯录管理 社团机构管理 校园导航管理 通讯录管理 社团机构管理 校园导航管理.
第六章 数据库技术基础 本章要点  数据库系统概述 数据库系统概述  关系数据库 关系数据库  数据库设计 数据库设计.
Chapter 3: SQL.
2012年9月等级考试辅导 数据库设计基础.
单项选择题 判断题 陈 琳.
An Introduction to Database System
网页设计师的职业成长规律 主讲:刘万辉 淮安信息职业技术学院.
初级会计电算化 (用友T3) 制作人:张爱红.
Access数据库基础 系列教学课件 安丘市职业中专 雷云龙.
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
第1章 数据库基础知识 1.1 数据处理技术的发展 1.2 数据抽象与模型 1.3 关系模型.
Oracle数据库 Oracle 子程序.
工作任务之: 1、“网上考试系统”数据库分析 2、“网上考试系统”数据库概要设计 3、“网上考试系统”数据库逻辑设计
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
在PHP和MYSQL中实现完美的中文显示
程序的形式验证 - 简介 中国科学院软件研究所 张文辉 1.
《数据库原理及应用》课程介绍 信息工程学院 孙俊国
作业4讲评.
Chinese Virtual Observatory
存储系统.
走进编程 程序的顺序结构(二).
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
段磊 王慧锋 TEL: qq群: 数据库系统原理课程设计 实验环节2 段磊 王慧锋 TEL: qq群:
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
第17章 网站发布.
Harvard ManageMentor®
第二章 Java语言基础.
数据挖掘工具性能比较.
PaPaPa项目架构 By:Listen 我在这.
数据库设计是信息系统的核心组成部分 从现实世界到数据世界的转换的过程
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
程序设计工具实习 Software Program Tool
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
实用网络营销基础 冯英健 2006年8月6日 首页.
新一代安全网上银行 小组成员:杨志明 王晶 任毅 刘建中 关昊 刘超.
《产品设计工程应用》课程 陈兴波 顺德职业技术学院/设计学院/工业设计专业.
解决变化问题的自底向上 流程建模方法 严志民 徐玮.
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
微机系统的组成.
计算机及办公软件应用 ©2013 苏州工业园区职业技术学院
VisComposer 2019/4/17.
商业分析平台-语义元数据 用友集团技术中心 边传猛 2013年 11月 06日.
VB与Access数据库的连接.
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
实验七 安全FTP服务器实验 2019/4/28.
实体描述呈现方法的研究 实验评估 2019/5/1.
Web安全基础教程
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
Harvard ManageMentor®
1.把下面的关系模式转化为E-R图 1)系(系号,系名,电话) 2)教师(工号,姓名,性别,年龄,系号)
第六章 数据模型转化为 关系数据库.
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第一章 绪论 1.1 引言 1.2 逻辑结构和存储结构 1.3 算法.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第十七讲 密码执行(1).
学习数据结构的意义 (C语言版) 《数据结构》在线开放课程 主讲人:李刚
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
任课教师:戴开宇 TA:时均帅、谭肖、王安华 程序设计B班 :20-16:50(90分钟)
入侵检测技术 大连理工大学软件学院 毕玲.
实验六、COM类型病毒分析实验 实验开发教师: 刘乃琦 谌黔燕.
FPGA系统设计与实践 本章小结(第5章).
软件工程课程设计 分组信息说明
Presentation transcript:

数据库原理及应用 《数据库原理及应用》课程组 Jmun_jsjxy@163.com 2007.3 荆楚理工学院

第五章 数据库应用系统设计 2007.3 荆楚理工学院

数据库设计是解决信息抽象描述、构造数据模型、实现数据存储的关键技术。 【本章要点】 数据库设计是解决信息抽象描述、构造数据模型、实现数据存储的关键技术。 本章将重点介绍有关数据库设计方面的理论与方法。 2007.3 荆楚理工学院

5.1 数据库设计 5.1.1 数据库设计的重要性 数据库是MIS(管理信息系统)、DSS(决策支持系统)、OAS(办公自动化系统)的基础和重要组成部分。数据库设计是指对一个实际的应用环境,设计最优的数据模型,然后据此建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。 数据库设计的优劣将直接影响信息系统的质量和运行效果。因此,设计一个结构优化的数据库是对数据进行有效管理的前提和产生正确信息的保证。 2007.3 荆楚理工学院

5.1.2 数据库设计方法和步骤 从本质上看,这些设计方法仍然属于手工设计的范畴,其基本思想是设计过程的迭代和逐步求精。 5.1 数据库设计 5.1.2 数据库设计方法和步骤 从本质上看,这些设计方法仍然属于手工设计的范畴,其基本思想是设计过程的迭代和逐步求精。 著名的 New Orleans方法将数据库设计分为:需求分析、概念结构设计、逻辑结构设计、物理结构设计4个阶段。 根据数据库设计的任务,我们将数据库设计步骤分为如下页图所示的6个阶段。 2007.3 荆楚理工学院

需求分析阶段 数据库设计的步骤: 概念结构设计 逻辑结构设计 物理结构设计 数据库实施阶段 数据库运行与维护 5.1 数据库设计 5.1 数据库设计 需求分析阶段 概念结构设计 逻辑结构设计 物理结构设计 数据库实施阶段 数据库运行与维护 数据库设计的步骤: 2007.3 荆楚理工学院

5.1 数据库设计 (1) 需求分析阶段  需求分析阶段的任务是通过详细的调查研究,充分了解用户的组织机构、业务规则、数据需求、完整性约束条件、事务处理和安全性要求等,为概念设计奠定基础。通常采用组织机构图、业务流程图等方法,详细描述用户应用环境的业务流程、数据需求。   需求分析阶段的后期将编写系统分析报告(也称需求规范说明书),提交用户的决策部门讨论审查。文档中应包括:① 系统的概况、目标、范围、背景、历史和现状。② 系统的总体结构和子系统的结构说明。③ 系统功能划分和说明。④ 系统组织机构、组织之间的联系图、数据流程图、功能模块图和数据字典等图表。 2007.3 荆楚理工学院

5.1 数据库设计 (2) 概念结构设计   在需求分析阶段,数据库设计人员充分地调查和分析用户的应用需求,概念结构设计的目标是产生出一个能反映组织信息需求的概念模型。概念模型的特点是:   简单明确表达用户业务环境数据需求、数据之间的联系、数据约束条件。   易于交流和理解,便于设计人员和用户之间沟通和交流。   易于向各种数据模型转换。   最常用的概念模型的表示方法是实体-联系模型,简称E-R模型。 2007.3 荆楚理工学院

逻辑结构设计的任务就是把概念结构转换成所选择的DBMS支持的数据模型(关系、层次或网状数据模型之一)。目前,绝大多数是转换成关系数据模型。 5.1 数据库设计 (3) 逻辑结构设计   逻辑结构设计的任务就是把概念结构转换成所选择的DBMS支持的数据模型(关系、层次或网状数据模型之一)。目前,绝大多数是转换成关系数据模型。 2007.3 荆楚理工学院

数据库最终是要存储在物理设备上的。数据库在计算机物理设备上的存储结构与存取方法称为数据库的物理结构。 5.1 数据库设计 (4) 物理结构设计   数据库最终是要存储在物理设备上的。数据库在计算机物理设备上的存储结构与存取方法称为数据库的物理结构。 2007.3 荆楚理工学院

通常,关系数据库的物理设计的内容主要包括以下5个部分: 5.1 数据库设计 通常,关系数据库的物理设计的内容主要包括以下5个部分:  ① 从提高系统性能的角度,确定数据的存储安排。  ② 将比较大的表分别放在两个磁盘上,可以加快存取速度。  ③ 将日志文件和数据库对象(表、索引等)分别放在不同的磁盘上,可以改进系统的性能。  ④ 索引结构设计。  ⑤ 系统配置的优化。 2007.3 荆楚理工学院

5.1 数据库设计 (5)数据库实施   确定了数据库的逻辑结构和物理结构后,就可以利用DBMS提供的数据定义语言建立数据库的结构。当数据库的结构建立之后,就可以向数据库中装载数据(也称为数据加载)。可以使用命令向数据库插入数据。由于数据库中的数据量非常大,为了提高效率,满足用户的要求,通常专门设计一个数据录入子系统(数据录入程序模块)完成数据输入任务。该子系统应该包括数据录入和录入过程的数据校验、代码转换、数据完整性约束,、安全性检查等。通常是用DBMS提供的FORMS生成器实现数据录入程序的设计。   2007.3 荆楚理工学院

(6) 数据库的运行与维护 数据库设计与应用开发工作完成之后,系统便进入运行与维护阶段。运行与维护阶段的主要任务如下: 5.1 数据库设计 (6) 数据库的运行与维护  数据库设计与应用开发工作完成之后,系统便进入运行与维护阶段。运行与维护阶段的主要任务如下:  ① 维护数据库的安全性和数据完整性。  ② 监测并改善数据库性能。  ③ 增加新的功能和数据。要根据用户工作环境的扩大,适时地向数据库增加一些新的数据和新功能  ④ 及时修改错误。系统运行过程中难免要发生一些错误,这些错误大多数是由于应用程序设计的欠缺所致,有时也会是信息需求描述不清造成的后果。所以,需要及时修改运行错误,弥补需求设计的欠缺。 2007.3 荆楚理工学院

② 将所有主码定义为非空(NOT NULL)。 ③ 对于二元联系,按照下列规则定义外码: 5.2 将E-R模型转换成关系数据库的方法 E-R模型转换成关系数据库的一般规则: ① 将每一个实体转换成一个关系。 ② 将所有主码定义为非空(NOT NULL)。 ③ 对于二元联系,按照下列规则定义外码: 1:M联系 将“一”表中的主码作为外码放在“多”表中。因此,外码总是在“多”的一方。 1:1联系 将一个表的主码作为外码放在另一个表中。 M:N多联系 在两个关系之间建立联系表,联系表的主码由两个父实体的主码组成。联系表的主码也是外码,所以,它们必须是NOT NULL。 2007.3

【例5.1】一个系聘用多位教师,—位教师只能属于一个系。 5.2 将E-R模型转换成关系数据库的方法 【例5.1】一个系聘用多位教师,—位教师只能属于一个系。 定义E-R模型: 系 教师 聘 1 M 转换成2个关系,分别确定表结构为: 系(系号,系名称) 教师(职工号,姓名,性别,职称,系号) FK放在教师表中,FK=<系号>,NOT NULL 说明:PK表示主码,FK表示外码。 2007.3 荆楚理工学院

5.2 将E-R模型转换成关系数据库的方法 数据结构图: 系号 系名称 职工号 姓名 性别 职称 系号 系 教师 2007.3 荆楚理工学院

(系号 SMALLINT NOT NULL UNIQUE, 系名称 CHAR(12) NOT NULL, 5.2 将E-R模型转换成关系数据库的方法 用SQL语言定义系表的结构: CREATE TABLE 系 (系号 SMALLINT NOT NULL UNIQUE, 系名称 CHAR(12) NOT NULL, PRIMARY KEY (系号)); 2007.3 荆楚理工学院

(职工号 SMALLINT NOT NULL UNIQUE, 姓名 CHAR(8) NOT NULL, 性别 CHAR(2), 5.2 将E-R模型转换成关系数据库的方法 用SQL语言定义教师表的结构:   CREATE TABLE教师   (职工号 SMALLINT NOT NULL UNIQUE,   姓名 CHAR(8) NOT NULL,   性别 CHAR(2),   工资 DECIMAL(6,2),   系号 SMALLINT Not null,   PRIMARY KEY (职工号),   FOREIGN KEY (系号) REFERENCES系); 2007.3 荆楚理工学院

【例5.2】航空公司出售的飞机票,旅客与机票是一一对应的,一位旅客一张机票。 5.2 将E-R模型转换成关系数据库的方法 【例5.2】航空公司出售的飞机票,旅客与机票是一一对应的,一位旅客一张机票。 定义E-R模型: 旅客 机票 乘坐 1 转换成2个关系: 机票(日期,航班号,座位号,价格) 旅客(日期,身份证号,姓名,航班号,座位号) FK放在旅客表中,FK=<日期,航班号,座位号>,NOT NULL。 2007.3 荆楚理工学院

数据结构图: 机票 日期 航班号 座位号 价格 旅客 日期 身份证号 姓名 航班号 座位号 5.2 将E-R模型转换成关系数据库的方法 日期 航班号 座位号 价格 旅客 日期 身份证号 姓名 航班号 座位号 2007.3 荆楚理工学院

PRIMARY KEY (日期,航班号,座位号)); 5.2 将E-R模型转换成关系数据库的方法 用SQL语言定义飞机票表的结构:   CREATE TABLE 机票    (日期 DATE NOT NULL,    航班号 CHAR(8) NOT NULL,    座位号 SMALLINT NOT NULL,    价格 DECIMAL(6,2),    PRIMARY KEY (日期,航班号,座位号)); 2007.3 荆楚理工学院

用SQL语言定义旅客表的结构: CREATE TABLE 旅客 (日期 DATE NOT NULL, 5.2 将E-R模型转换成关系数据库的方法 用SQL语言定义旅客表的结构:  CREATE TABLE 旅客   (日期 DATE NOT NULL,   身份证号 CHAR(18) NOT NULL,   姓名 CHAR(10)NOT NULL,   航班号 CHAR(8)NOT NULL,   座位号 SMALLINT NOT NULL,   PRIMARY KEY (日期,身份证号),   FOREIGN KEY (日期) REFERENCES 机票,   FOREIGN KEY (航班号) REFERENCES 机票,   FOREIGN KEY (座位号) REFERENCES 机票); 2007.3 荆楚理工学院

【例5.3】一名学生可以选修多门课程,一门课程可能有多人选修。 5.2 将E-R模型转换成关系数据库的方法 【例5.3】一名学生可以选修多门课程,一门课程可能有多人选修。 定义E-R模型: 课程 学生 成绩 M N 转换成3个关系: 课程(课程号,课程名称,学时,性质) 学生(学号,姓名,性别,专业) 成绩(学号,课程号,分数) FK放在成绩表中,FK=<学号,课程号> 2007.3 荆楚理工学院

数据结构图 : 学生 课程 课程号 课程名称 学时 性质 学号 姓名 性别 专业 成绩 学号 课程号 分数 5.2 将E-R模型转换成关系数据库的方法 数据结构图 : 课程 课程号 课程名称 学时 性质 学生 学号 姓名 性别 专业 成绩 学号 课程号 分数 2007.3 荆楚理工学院

用SQL语言定义课程表的结构: CREATE TABLE课程 (课程号 CHAR(4) NOT NULL, 5.2 将E-R模型转换成关系数据库的方法 用SQL语言定义课程表的结构:  CREATE TABLE课程   (课程号 CHAR(4) NOT NULL,   课程名称 CHAR(12) NOT NULL,   学时 SMALLINT,   性质 CHAR(4),   PRIMARY KEY (课程号)); 2007.3 荆楚理工学院

用SQL语言定义学生表的结构: CREATE TABLE 学生 (学号 CHAR(6) NOT NULL, 5.2 将E-R模型转换成关系数据库的方法 用SQL语言定义学生表的结构:  CREATE TABLE 学生   (学号 CHAR(6) NOT NULL,   姓名 CHAR(8) NOT NULL,   性别 CHAR(2),   专业 CHAR(10),   PRIMARY KEY (学号)); 2007.3 荆楚理工学院

FOREIGN KEY(学号) REFERENCES学生, FOREIGN KEY (课程号) REFERENCES课程); 用SQL语言定义成绩表的结构:  CREATE TABLE 成绩   (学号 CHAR(6) NOT NULL,   课程号 CHAR(4) NOT NULL,   分数 DECIMAL(4,1),   PRIMARY KEY (学号,课程号),   FOREIGN KEY(学号) REFERENCES学生,   FOREIGN KEY (课程号) REFERENCES课程); 2007.3 荆楚理工学院

E-R模型是数据库设计的重要部分,也是本课程的重点内容。为了加深理解,提高设计能力,这里将给出JM大学的应用实例。 2007.3 荆楚理工学院

5.3 E-R模型设计实例 5.3.1 JM大学数据库概念模型设计 ① 该大学有多个学院:理学院、工学院、文学院、法学院,商学院、医学院等。每一个学院有一个院长,且每一位院长只能主管一个学院。因此,学院和院长实体之间是一对一联系。根据上述语义画出局部E-R图为: 院长 学院 主管 1 2007.3 荆楚理工学院

5.3 E-R模型设计实例 JM大学数据库概念模型设计(续) ② 每一个学院有多个系。例如,商学院有会计系、市场营销系、经济系、财务系等。每一个系仅属于一个学院。所以,学院与系是一对多联系。根据上述语义画出局部E-R图为: 学院 系 设置 1 M 2007.3 荆楚理工学院

5.3 E-R模型设计实例 JM大学数据库概念模型设计(续) ③ 每一个系根据专业的特点和分工开设多门课程。将这些课程统一编码、列入教学培养计划。另外,在每一学期的教学执行计划(课表)中,教学培养计划中的一门课程可能要划分成几个部分,分布在几个学期内讲授。这里规定将列入教学培养计划中的课程简称为课程,将教学执行计划中所安排的课程简称为课表。所以,课程与课表之间是1:M的联系,局部E-R图为: 系 课程 开设 1 M 课表 安排 2007.3 荆楚理工学院

JM大学数据库概念模型设计(续) ④ 每一个系有多名教师,但每一位教师只属于一个系;每一个系有一个系主任,系主任是一位教师。局部E-R图为: 聘请 1 教师 主任 M 2007.3 荆楚理工学院

5.3 E-R模型设计实例 JM大学数据库概念模型设计(续) ⑤ 一位教师可能讲多门课,且课表中每一门课必须有一位教师讲授。这里的课是指课表中安排的课程。局部E-R图为: 教师 课表 讲授 1 M 2007.3 荆楚理工学院

JM大学数据库概念模型设计(续) ⑥ 假设规定每一名学生可选修多门课(指课表中的课),且一门课有多名学生选。局部E-R图为: 学生 课表 成绩 M N 2007.3 荆楚理工学院

JM大学数据库概念模型设计(续) ⑦ 每一个系有多名学生,且每一名学生只能属于一个系。局部E-R图为: 系 学生 管理 1 M 2007.3 荆楚理工学院

归纳上述7项可以定义7个实体:学院、院长、系、教师、课程、课表、学生,其相互联系有: 5.3 E-R模型设计实例 归纳上述7项可以定义7个实体:学院、院长、系、教师、课程、课表、学生,其相互联系有: 实体 联系 学院 设置 系 院长 主管 聘请 教师 开设 课程 管理 学生 安排 课表 讲授 主任 成绩 2007.3 荆楚理工学院

5.3 E-R模型设计实例 5.3.2 逻辑结构设计   逻辑结构设计是将概念模型(E-R模型)转换成关系数据库。按照前面介绍的转换规则,将JM大学E-R模型转换成关系数据库。  ① 学院(学院编号,学院名称,学院地址,院长编号)    PK=学院编号 NOT NULL    FK=院长编号 2007.3 荆楚理工学院

JM大学数据库中的表的结构(续) ② 院长(院长编号,姓名,电话号码,办公室)。 PK=院长编号 NOT NULL 5.3 E-R模型设计实例 JM大学数据库中的表的结构(续) ② 院长(院长编号,姓名,电话号码,办公室)。 PK=院长编号 NOT NULL 说明:虽然学院与院长是1:1联系,可以合并成一个实体,但是根据学院的业务需求,仍然保留两个实体(院长和学院)。将FK放在存取比较频繁的学院表中,这里FK=<院长编号>。 2007.3 荆楚理工学院

JM大学数据库中的表的结构(续) ③ 系(系代号,系名称,电话号码,系地址,学院编号,教工号)。 PK=系代号 NOT NULL 5.3 E-R模型设计实例 JM大学数据库中的表的结构(续) ③ 系(系代号,系名称,电话号码,系地址,学院编号,教工号)。 PK=系代号 NOT NULL FK=学院编号 参照学院表 FK=教工号 参照教师表 说明:学院编号是系与所在学院之间的连接属性,教工号表示系主任的教工号。 2007.3 荆楚理工学院

JM大学数据库中的表的结构(续) ④ 教师(教工号,姓名,学历,职称,工资,电话号码,系代号)。 PK=教工号 NOT NULL 5.3 E-R模型设计实例 JM大学数据库中的表的结构(续) ④ 教师(教工号,姓名,学历,职称,工资,电话号码,系代号)。 PK=教工号 NOT NULL FK=系代号 参照系表 说明:系代号是教师与所在系之间的连接属性。 2007.3 荆楚理工学院

JM大学数据库中的表的结构(续) ⑤ 课程(课程号,课程名称,学分,系代号)。 PK=课程号 NOT NULL FK=系代号 参照系表 5.3 E-R模型设计实例 JM大学数据库中的表的结构(续) ⑤ 课程(课程号,课程名称,学分,系代号)。 PK=课程号 NOT NULL FK=系代号 参照系表 说明:系代号是课程与开设这门课的系之间的连接属性。 2007.3 荆楚理工学院

JM大学数据库中的表的结构(续) ⑥ 课表(开课号,课程号,部分,教工号,学时数,时间,地点)。 PK=开课号 NOT NULL 5.3 E-R模型设计实例 JM大学数据库中的表的结构(续) ⑥ 课表(开课号,课程号,部分,教工号,学时数,时间,地点)。 PK=开课号 NOT NULL FK=课程号参照课程表 FK=教工号参照教师表 说明:课程号体现教学培养计划所列的课程与每个学期具体执行的课表之间的联系;教工号是教工与课表之间的联系。 2007.3 荆楚理工学院

JM大学数据库中的表的结构(续) ⑦ 学生(学号,身份证号,姓名,性别,出生年月,专业,电话号码,系代号)。 PK=学号 NOT NULL 5.3 E-R模型设计实例 JM大学数据库中的表的结构(续) ⑦ 学生(学号,身份证号,姓名,性别,出生年月,专业,电话号码,系代号)。 PK=学号 NOT NULL FK=系代号参照系表 说明:系代号是学生与所在系之间的连接属性。 2007.3 荆楚理工学院

JM大学数据库中的表的结构(续) ⑧ 成绩(学号,开课号,分数)。 PK=<学号,开课号> NOT NULL 5.3 E-R模型设计实例 JM大学数据库中的表的结构(续) ⑧ 成绩(学号,开课号,分数)。 PK=<学号,开课号> NOT NULL FK=开课号 参照课表 FK=学号 参照学生表 说明:开课号是成绩与课表之间的连接属性;学号是成绩与学生之间的连接属性。 2007.3 荆楚理工学院

CREATE DATABASE University 说明:假设数据库名称是University 5.3.3 数据库的实施 (1) 建立数据库 CREATE DATABASE University 说明:假设数据库名称是University 2007.3 荆楚理工学院

(2) 用SQL语言定义数据库的表结构 CREATE TABLE 学院 (学院编号SMALLINT NOT NULL UNIQUE, 5.3 E-R模型设计实例 (2) 用SQL语言定义数据库的表结构 CREATE TABLE 学院 (学院编号SMALLINT NOT NULL UNIQUE, 学院名称 VCHAR(20) NOT NULL, 学院地址VCHAR(36), 院长编号 SMALLINT NOT NULL, PRIMARY KEY (学院编号), FOREIGN KEY (院长编号) REFERENCES 院长); 注意:VCHAR是可变长字符型数据类型。 2007.3 荆楚理工学院

(2) 用SQL语言定义数据库的表结构(续) 5.3 E-R模型设计实例 (2) 用SQL语言定义数据库的表结构(续) CREATETABLE 院长 (院长编号SMALLINT NOT NULL UNIQUE, 院长姓名 CHAR(8) NOT NULL, 电话号码CHAR(12), PRIMARY KEY (院长编号)); 2007.3 荆楚理工学院

(2) 用SQL语言定义数据库的表结构(续) 5.3 E-R模型设计实例 (2) 用SQL语言定义数据库的表结构(续) CREATE TABLE 系 (系代号 SMALLINT NOT NULL UNIQUE, 系名称 VCHAR(20) NOT NULL, 系地址 VCHAR(20), 电话号码 CHAR(12), 学院编号 SMALLINT NOT NULL, 教工号 CHAR(4) NOT NULL, &&系主任的教工号 PRIMARY KEY (系代号), POREIGN KEY (学院编号) REFERENCES 学院, FOREIGN KEY (教工号) REFERENCES 教师); 2007.3 荆楚理工学院

(2) 用SQL语言定义数据库的表结构(续) 5.3 E-R模型设计实例 (2) 用SQL语言定义数据库的表结构(续) CREATE TABLE 教师 (教工号 SMALLINT NOT NULL UNIQUE, 姓名 CHAR(8) Not null, 性别 CHAR(2), 学历 CHAR(6), 电话号码 CHAR(12), 工资 Decimal(5), 系代号 SMALLINT, PRIMARY KEY (教工号), FOREIGN KEY (系代号) REFERENCES 系); 2007.3 荆楚理工学院

(2) 用SQL语言定义数据库的表结构(续) 5.3 E-R模型设计实例 (2) 用SQL语言定义数据库的表结构(续) CREATE TABLE 课程 (课程号 CHAR(6) NOT NULL UNIQUE, 课程名 CHAR(20) NOT NULI, 学分 SMALLINT, 系代号 SMALLINT, PRIMARY KEY (课程号), FOREIGN KEY (系代号) REFERENCES 系); 2007.3 荆楚理工学院

(2) 用SQL语言定义数据库的表结构(续) 5.3 E-R模型设计实例 (2) 用SQL语言定义数据库的表结构(续) CREATE TABLE 课表 (开课号 SMALLINT NOT NULL UNIQUE, 课程号 CHAR(6) NOT NULL, 部分 SMALLINT, 学时数 SMALLINT, 时间 CHAR(20), 地点 CHAR(10), 教工号 SMALLINT, PRIMARY KEY (开课号), FOREIGN KEY (课程号) REFERENCES 课程, FOREIGN KEY (教工号) REFERENCES 教师); 2007.3 荆楚理工学院

(2) 用SQL语言定义数据库的表结构(续) 5.3 E-R模型设计实例 (2) 用SQL语言定义数据库的表结构(续) CREATE TABLE 学生 (学号 SMALLINT Not null UNIQUE, 姓名 CHAR(8) Not null, 性别 CHAR(2), 出生年月 DATE, 专业 CHAR(16), 电话号码 CHAR(12), 系代号 SMALLINT, PRIMARY KEY (学号), FOREIGN KEY (系代号) REFERENCES系); 2007.3 荆楚理工学院

(2) 用SQL语言定义数据库的表结构(续) 5.3 E-R模型设计实例 (2) 用SQL语言定义数据库的表结构(续) CREATE TABLE 成绩 (学号 SMALLINT NOT NULL, 开课号 SMALLINT NOT NULL, 分数 DECIMAL(4,1), PRIMARY KEY (学号,开课号), FOREIGN KEY (学号) REFERENCES 学生, FOREIGN KEY (开课号) REFERENCES 课表); 2007.3 荆楚理工学院

5.3 E-R模型设计实例 5.3.4 在数据库设计中应注意的问题   数据库设计是对用户需求和约束详细分析、反复处理和最终实施的过程。设计的最终结果应该准确地描述企业真实的数据环境。所以,正确理解企业(组织)的业务规则是数据库设计的基础和关键。设计人员必须详细地调查企业的业务规则和应用需求。 2007.3 荆楚理工学院

本 章 习 题 一、填空题 1.实体是_____,实体集是______。 2.属性是______,属性域是__________。 习 题 本 章 习 题 一、填空题 1.实体是_____,实体集是______。 2.属性是______,属性域是__________。 3.基本属性是_______,组合属性是__________。 4.联系是_______________________________。 5.实体与实体之间联系的方式有____、___、___。 6.一元联系又称为_________。 2007.3 荆楚理工学院

二、单项选择题 1.___可以用于概念模型设计。 A.层次树结构 B.数据流程图 C.E-R图 D.关系数据模型 习 题 二、单项选择题 1.___可以用于概念模型设计。 A.层次树结构 B.数据流程图 C.E-R图 D.关系数据模型 2.如果两个实体之间的联系是1:M,则实现1:M联系的方法是____。 A.将两个实体转换成一个关系。 B.将两个实体转换的关系中,分别加入另一个关系的主码。 C.将“1”端实体转换的关系的主码,放入“M”端实体转换的关系中。 D.将“M”端实体转换的关系的主码,放入“1”端实体转换的关系中。 2007.3 荆楚理工学院

二、单项选择题(续) 3.如果两个实体之间的联系是M:N,则在转换成关系模型时,_____引入第三个交叉关系。 习 题 二、单项选择题(续) 3.如果两个实体之间的联系是M:N,则在转换成关系模型时,_____引入第三个交叉关系。 A.需要 B.不需要 C.无所谓 D.将两个实体合并 2007.3 荆楚理工学院

二、单项选择题(续) 4.在SQL语言中,______子句能够实现关系参照完整性规则。 A.PRIMARYKEY B.NOT NULL 习 题 二、单项选择题(续) 4.在SQL语言中,______子句能够实现关系参照完整性规则。 A.PRIMARYKEY B.NOT NULL C.FOREIGNKEY D.FOREIGNKEY...REFERENCES…。 5.在建立表结构时定义关系完整性规则,______。 A.使数据库系统能够自动维护数据完整性约束条件。 B.还需要编程序实现数据完整性约束条件。 C.没有必要定义。 D.将使系统操作复杂。 2007.3 荆楚理工学院

三、简要回答下列各题 1.举例说明E-R模型中实体之间一对多联系转换成关系数据模型的方法是什么? 习 题 三、简要回答下列各题 1.举例说明E-R模型中实体之间一对多联系转换成关系数据模型的方法是什么? 2.举例说明E-R模型中实体之间多对多联系转换成关系数据模型的方法是什么? 3.举例说明E-R模型中实体之间一对一联系转换成关系数据模型的方法是什么? 2007.3 荆楚理工学院

四、综合设计题 1.根据某书社的业务需求,设计一个E-R模型,将其转换成关系数据模型并画出数据结构图,然后,用SQL语言定义数据库的表结构。 习 题 四、综合设计题 1.根据某书社的业务需求,设计一个E-R模型,将其转换成关系数据模型并画出数据结构图,然后,用SQL语言定义数据库的表结构。 2.根据某电脑公司的业务需求,设计一个E-R模型,将其转换成关系数据模型并画出数据结构图,然后,用SQL语言定义数据库的表结构。 2007.3 荆楚理工学院

习 题 四、综合设计题(续) 3.假设金龙房地产公司聘用多名业务员负责房地产的销售业务,金龙公司有房地产 5万平方米,分布在3个小区,有一部分房产已售出,其中有的客户一次性付款,也有的客户是分期付款。公司希望存储业务员、房产、房产销售、客户和客户付款情况。试设计 E-R模型,描述金龙公司的数据环境,并将E-R模型转换成关系数据模型和画出数据结构图,然后,用SQL语言定义数据库的表结构。(自定义实体的属性。) 2007.3 荆楚理工学院

4.假设要为银行的储蓄业务设计一个数据库,设想一下如何设计E-R模型,并将其转换成关系数据模型和画出数据结构图。(自定义实体的属性。) 习 题 四、综合设计题(续) 4.假设要为银行的储蓄业务设计一个数据库,设想一下如何设计E-R模型,并将其转换成关系数据模型和画出数据结构图。(自定义实体的属性。) 2007.3 荆楚理工学院

习 题 四、综合设计题(续) 5.假设要为荆门中商超市设计一个数据库,设想一下如何设计E-R模型,并将其转换成关系数据模型和画出数据结构图。(提示:超市的数据环境至少要有商品、收银员、销售等实体。可以自定义实体的属性。) 2007.3 荆楚理工学院