第3章应用数据库设计与创建.ppt

上传人:本田雅阁 文档编号:2602510 上传时间:2019-04-16 格式:PPT 页数:33 大小:2.43MB
返回 下载 相关 举报
第3章应用数据库设计与创建.ppt_第1页
第1页 / 共33页
第3章应用数据库设计与创建.ppt_第2页
第2页 / 共33页
第3章应用数据库设计与创建.ppt_第3页
第3页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第3章应用数据库设计与创建.ppt》由会员分享,可在线阅读,更多相关《第3章应用数据库设计与创建.ppt(33页珍藏版)》请在三一文库上搜索。

1、第3章 应用数据库设计与创建,倚动实验室,CONTENTS,3.1,数据库基础,目录,3.2,系统所涉的实体及其属性,3.3,项目数据库表,3.4,MySQL数据库的构建,3.5,数据库操作,数据库,顾名思义,就是应用中所需要的数据都保存在其中,数据库设计的简单与复杂也直接影响到应用设计的框架和结构,所以,在数据库设计时,需要用户花费比较多得时间去思考应用中所需要的数据,并将他们整理成数据表。,3.1数据库基础,3.1.1基本概念,在人们平常所提到的数据处理概念中,最主要的就是“数据”和“信息”,那么他们各自代表什么含义呢?其实数据和信息二者之间的关系是密不可分的,信息是对现实世界中存在的客观

2、实体、现象和关系进行描述的具有特定意义的数据,是经过加工处理的数据。 数据:数据从字面上理解就是用来描述客观事物的符号、标记、图形等信息的组合;那么从实际应用上来看,数据就是能够直观的体现出与应用相关的信息。 信息:以数据为载体的对客观实际存在的事物、事件和概念的抽象反应,是经过加工处理过的数据。 数据处理:数据处理就是将数据进行相应的加工,处理之后成为信息。数据处理是将数据转换成信息的过程,是指对信息进行收集、整理、存储、加工以及传播等一系列活动的总和。 我们可以简单的运用下面的公式表述数据、信息和数据处理三者之间的关系: 信息 = 数据 + 数据处理 数据是原材料,而信息则是产品,数据处理

3、的真正意义是为了产生信息而去处理相关的数据。,数据库设计的过程主要是三个阶段,需求分析阶段、数据库设计与实施阶段和数据库维护阶段。 (1)需求分析阶段 (2)数据库设计与实施阶段 (3)数据库维护 有些教科书上将数据库的设计分为6个阶段,这样就将设计阶段进行更加详细的划分。 1.需求分析阶段 2.概念设计阶段 3.逻辑设计阶段 4.物理设计阶段 5.数据库实施阶段 6.数据库运行和维护阶段,3.1.2数据库设计的基本过程,数据库的基本操作主要包括5方面: 1.创建数据库表 2.添加数据 3.删除数据 4.修改数据 5.查询数据,3.1.3数据库基本操作,创建数据库表,首先我们要知道,数据库表是

4、二维表,包含行与列,创建表包括定义列名称、数据类型和约束等等。这些都是在创建数据表中完成。 列名称的选取最好是取一个具有代表意义的名称,比如学生姓名用SName,而不要去使用没有代表意义的名称,那样会使得阅读表产生困难,不易于理解;数据类型是定义字段的取值类型和取值范围,用户也可以自定义数据类型;表约束则是更进一步限制了列的取值范围。这些约束包括下面几种类型:,主键约束:限制列的取值不为空,而且不能重复。 外键约束:限制列的取值受其他列或者其他表中列的取值范围约束。 列取值范围约束:限制列的取值必须是有意义的,比如性别只能取“男”或“女”等。 取值是否允许为空等。,通过SQL语句创建表的一般格

5、式: CREATE TABLE ( 列级完整性约束条件 , 列级完整性约束条件 , ),下面我们通过一个创建“用户”表User来详细了解创建表的方法。可以在Sql-Server或MySQL工具中输入代码。 1. CREATE TABLE User( 2. UNo char(10) NOT NULL, 3. UName char(10) NOT NULL, 4. USex char(2) 5. UAge tinyint, 6. UArea char(10) 7. UEmail char(20), 8. PRIMARY KEY(UNo),在用户表中,我们定义了6个字段,分别是用户编号,用户名,用户

6、性别,用户年龄、用户地区和电子邮件地址,如代码中2-6行所示。其中用户编号和用户名是不为空的,最后将用户编号设置为主键约束。这样一张数据库表就创建好了。,添加数据,插入数据有两种方式:一是向表中添加一行数据,二是一次添加多条数据。 (1) 单行数据的插入 插入单行数据的SQL语句格式如下: INSERT INTO () VALUES (),那么用户在使用单行插入语句时应该注意以下2点: 1、值列表中的值与列名表中的列按顺序对应,要求它们的数据类型必须一致。 2、如果后边没有指明列名,则新插入记录的值的顺序必须与表中列的顺序一致,而且每一列都必须有值(可以为空)。 例如,我们向User表中添加一

7、条记录 INSERT INTO User VALUES(2014011,张三,男,18,江西,) 这样我们就在User表中添加了一条记录。,(2)多行数据的插入 多行数据的插入实际上就是将某个查询语句的结果插入到相应的表中,插入多行数据的SQL语句格式如下: INSERT INTO () 子查询语句 我们通常会在以下两种情况下使用多行插入: 1、当用户需要从表中提取数据,来生成新表时。 2、当表结构变更之后,原有的数据可以重新置入。 例如我们现在要求用户表中所有用户的平均年龄,并把结果存入新的数据库表中。那么,我们首先要创建一张新的数据表UAveage。 1. CREATE TABLE UAv

8、eage (UArea char (10),UAveage smallint) 2. INSERT INTO UAveage (UArea,UAveage) 3. SELECT UArea,UAveage(UAge) FROM User 4. GROUP BY UAveage,删除数据,删除数据比较容易,但是需要考虑到删除的条件是否是自己需要的,不要错删了重要的数据。 删除数据的SQL语句格式如下: DELETE FROM WHERE Where条件可以有可无,如果不带where条件语句,那么就将删除整张表,删除后,表还是存在,只是内容为空。 例如我们删除User表中年龄为20岁的用户。,1.

9、 DELETE FROM User 2. WHERE UAge = 20 IN 3. (SELETE UNo FROM User) 这样就从User表中删除了年龄为20岁的用户。 如果需要删除整张表中的数据,直接删除即可。 DELETE FROM User,修改数据,在向表中添加了数据之后,如果需要再次修改数据,那么可以使用UPDATE语句来对数据进行更新操作。修改数据的SQL语句格式如下: UPDATE SET ,n WHERE 代表需要修改数据的表的名称。SET指定需要修改的列,表达式指定需要更新的数据内容,WHERE子句可以不写,如果不写那么就会修改表中指定列的全部值。 例如,我们现在更

10、新表中学号为2014011用户的年龄为22。,1. UPDATE User SET UAge = 22 2. WHERE UNo = 2014011,查询数据,SQL语言的核心就是数据的查询,从庞大的数据找找出我们需要的数据是一件多么伟大的事啊。虽然它的命令只有SELECT一个,但是它可以涵盖多个子句进行组合查询。 我们简单介绍一下查询语句的格式。 1. SELECT ALL|DISTINCT , 2. FROM , 3. WHERE 4. GROUP BY HAVING 5. ORDER BY ASC|DESC 我们根据WHERE条件子句从FROM子句制定的表或视图中找到满足条件的元组,再按

11、照SELECT子句中的目标列表达式,选出元组中的属性值形成结果。以表的形式显示出来。ORDER BY表示查询的结果是按升序排列还是降序排列。,3.2系统所涉的实体及其属性,“生源省市”实体主要保存我国各个省或直辖市的信息,如下图3-1所示。,图3-1“生源省市”实体图,图3-2“学校所在地区”实体图,“学校所在地区”实体主要保存学校所在省市县的信息,如图3-2所示。,“批次”实体主要保存录取的批次信息,包括一本、二本、三本、专科和提前本科共五种,如图3-3所示。,“科类”主要保存专业类别,分为文史、理工、综合、体育和艺术共五类,如图3-4所示。,图3-3“批次”实体图,图3-4“科类”实体图,

12、“学校”的主要属性包括:学校编号、学校代码、学校名称、是否211、是否985、是否教育部直属以及学校所在地,如图3-5所示。,学校与学校所在地区为一对多的关系,如图3-6所示。一个地区可以有多个学校,但一个学校只位于一个地区,当学校在其它地区有分校时,将其看做是两个学校。,图3-5“学校”实体图,图3-6学校与学校所在地区E-R图,每个学校有一个学校招生部门。学校招生部门包括联系编号、学校名称、用户名(用于登录)、密码、联系人姓名、邮箱、办公室电话、手机号码、QQ号、网址、被联系次数、创建时间、最后登录时间,如图3-7所示。,“招生部门联系人”是学校招生部门的联系人,主要包括,联系人编号、联系

13、人姓名、职位、电话和邮箱,如图3-8所示。,图3-7“学校招生部门”实体图,图3-8“招生部门联系人”实体图,“专业”主要包括属性:专业编号、专业名称、专业代码,如图3-9所示。,学校每个专业有一个专业负责人,“专业负责人”主要包括:负责人编号、负责人姓名、负责人电话和负责人邮箱,如下图3-10所示。,图3-9“专业”实体图,图3-10“专业负责人”实体图,学校、专业及专业负责人有关系,一个学校开办多个专业,一个专业可以由多个专业开办,因此学校和专业是一对多的关系。一个专业拥有一个专业负责人,一个专业负责人负责一个专业,因此专业和专业负责人是一对一的关系,E-R图如图3-11所示。,生源省市跟

14、批次、科类等实体有关系,同时还应包括年份、分数和省控线编号属性。其中生源省市与批次、科类的关系,均为一对多,只有批次、科类以及年份三个个因素才能唯一确定一个生源省市的省控线分数,如图3-12所示。,图3-11学校与专业E-R图,图3-12省控线E-R图,学校跟生源省市、批次、科类、学校所在地区等实体有关系,同时还应包括年份、平均分、投档线、最高分属性。其中学校与批次、生源省市、科类间的关系,均为一对多,学校与学校所在地区的关系是一对一的关系。只有生源省市、批次、科类以及年份四个因素才能唯一确定这一学校某年具体批次具体科类的录取线。录取线包括平均分和最高分两项,如图3-13所示。,图3-13学校

15、录取E-R图,学校跟专业、生源省市、批次、科类等实体有关系,同时还应包括年份、省控线、最高分、平均分属性。其中专业与学校、生源省市与学校、批次学校、科类与学校间的关系,均为一对多,只有专业、生源省市、批次、科类以及年份五个因素才能唯一确定这一学校某个专业某年具体批次具体科类的录取线,如图3-14所示。录取线包括平均分和最高分两项。注意:同一个专业在不同学校批次可能不同,有些专业即可招文科生也可招理科生。,图3-14学校与专业录取E-R图,“高考咨讯”实体保存与高考相关的资讯信息,包括:咨讯编号、生源省市编号和咨讯内容,如图3-15所示。,图3-15“高考咨讯”实体图,“豹考通”App数据总体E

16、-R图如图3-16所示。,图3-16“豹考通”App数据总体E-R图,3.3项目数据库表,专业表主要包括专业编号、专业名称、专业代码字段,如表3-1所示。,表3-1专业表(specialty),地区表主要包括地区编号、地区名称字段,如表3-2所示。,表3-2地区表(area),批次表主要包括批次编号、批次名称字段。批次分为:一本、二本、三本、专科、提前本科,如表3-3所示。,表3-3批次表(batch),科类表主要包括科类编号、科类名称字段。批次分为:文史、理工、综合、艺术、体育,如表3-4所示。,表3-4科类表(category),学校表主要包括学校编号、学校名称、学校代码、学校所在地、是否

17、211、是否985、是否直属字段,如表3-5所示。,表3-5学校表(school),省控线表主要包括省控线编号、省控线值、年份、批次编号、科类编号、生源地,如表3-6所示。,表3-6省控线表(controlLine),学校录取线表主要包括录取线编号、年份、批次编号、科类编号、学校编号、生源地、录取平均分、录取最高分、投档线、投档最低排名、预测投档线,如表3-7所示。,表3-7学校录取表(schoolRecruit),专业录取线表主要包括录取线编号、年份、批次编号、科类编号、学校编号、生源地、专业编号、专业名称和专业录取线,如表3-8所示。,表3-8专业录取表(majorRecruit),学校联

18、系信息包括联系编号、学校编号、用户名(用于登录)、密码、联系人姓名、邮箱、办公室电话、手机号码、QQ号、网址、被联系次数、创建时间、最后登录时间,如表3-9所示。,表3-9学校联系信息表(schoolInfo),专业联系信息包括专业联系编号、学校编号、专业名称、联系人姓名、职位、邮箱、办公室电话、手机号码、QQ号,如表3-10所示。,表3-10专业联系信息表(specialtyInfo),3.4MySQL数据库的构建,3.4.1MySQL特点,在“豹考通”应用案例中,我们的服务器选择的是MySQL。MySQL是一个开源的小型关系式数据库管理系统,开发者为瑞典MySQL AB公司。MySQL被广

19、泛应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开源这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站的数据库。 我们在应用开发时之所以选择MySQL作为数据库,是因为它具有以下几个特点: 1. MySQL使用的核心是完全多线程,支持多处理器。 2. MySQL有多种列类型供用户选择,包括:1、2、3、4和8字节长度有符号/无符号整数、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、TIMESTAMP、YEAR和ENUM类型。 3. MySQL通过一个高度优化的类库实现S

20、QL函数库并能够和它们达到相同的运算速度,通常在查询初始化后不该有任何内存分配问题,不存在内存泄露问题。 4. MySQL全面支持SQL语句的GROUP BY和ORDER BY子句,可以实现混合查询子句。 5. 支持ANSI SQL的LEFT OUTER JOIN和ODBC。 6. 所有列都有缺省值。 7. MySQL可以跨平台工作,支持C、C+、Java、Perl、PHP、Python等。 最重要一点,MySQL是开源的。,3.4.2数据库构建和维护,略,具体操作,3.5数据库操作,略,具体操作,课后练习,1、根据本章3.3小节内容,下载MySQL数据库工具,并安装。 2、在MySQL中,创建学生表、成绩表和课程表,并在3.1小节内容的引导下,完成数据库表插入、删除、修改和查询等功能。 3、将“豹考通”App的批次表导入到MySQL中,并自己创建一张学校联系人表,插入数据,最后导出到Excel中。 下载Navicat管理工具,并联系SQL语句的使用,实现增删查改功能。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1