版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
普通高等学校计算机教育“十四五”规划教材
MySQL数据库原理
及实践教程
乔钢柱◎主 编
张晓华 井 超 李晓波◎副主编
WQ.indd12022/8/1617:18:27
内容简介
本书以零基础讲解为宗旨,用实例引导读者学习,深入浅出地介绍了MySQL数据库的相关
知识和实战技能,内容详尽,实例丰富。
全书共分为8章,包括数据库基础知识、数据库的基本操作、数据表的基本操作、数据类型
和运算符、视图和触发器、事务管理、MySQL连接器JDBC和连接池、常见函数和数据管理。
每章节后包含了与本书内容全程同步的综合案例教学,并配有微视频详细讲解。
本书适合作为高等院校学习MySQL数据库课程的教学用书,也可作为编程初学者学习
MySQL数据库的参考书,对于希望系统学习MySQL数据库的人员也具有参考价值。
图书在版编目(CIP)数据
MySQL数据库原理及实践教程/乔钢柱主编.—北京:
中国铁道出版社有限公司,2022.8
普通高等学校计算机教育“十四五”规划教材
ISBN978-7-113-29071-9
Ⅰ.①M…Ⅱ.①乔…Ⅲ.①关系数据库系统-高等学校-
教材Ⅳ.①TP311.132.3
中国版本图书馆CIP数据核字(2022)第063147号
书名:MySQL数据库原理及实践教程
作者:乔钢柱
策划:王春霞编辑部电话:(010)51873035
责任编辑:王春霞 王占清
封面设计:刘 颖
责任校对:安海燕
责任印制:樊启鹏
出版发行:中国铁道出版社有限公司(100054,北京市西城区右安门西街8号)
网址:/51eds/
印刷:三河市宏盛印务有限公司
版次:2022年8月第1版 2022年8月第1次印刷
开本:850 mm×1 168 mm1/16 印张:12.75 字数:326千
书号:ISBN978-7-113-29071-9
定价:39.00元
版权所有侵权必究
凡购买铁道版图书,如有印制质量问题,请与本社教材图书营销部联系调换。电话:(010)63550836
打击盗版举报电话:(010)63549461
WQ.indd22022/8/1617:18:27
前言
MySQL是由瑞典MySQLAB公司开发的数据库管理系统(DBMS),其特点为体积小、
速度快且完全免费开源,因而被中小公司和程序员推崇。2008年1月,MySQLAB公司被
Sun公司收购,后来Sun公司又被Oracle公司收购,所以,目前MySQL在Oracle旗下。经
历多次公司的兼并和重组,同时被Oracle公司升级开发,因而MySQL的功能也越来越强大,
同时仍旧保持其最初优点,因而应用依然非常广泛。
本书以目前比较流行的MySQL5.5版本为平台,结合当前数据库教学和应用开发实践,
对全书进行了设计编写。MySQL的主要功能包括创建数据库和表及表记录操作、数据类型
和运算符、数据库的视图和触发器、数据库事务、常见函数和数据管理等。MySQL命令分
层缩进,实例前后形成系统,运行结果直观清晰。
本书融合数据基础和MySQL实现于一体,系统性、应用性强,注重实践,并且从方便
教和学两个角度组织内容、调试实例和安排综合应用。
使用本书时,建议初学者按照章节顺序从头至尾完成阅读学习,同时也应进行一定的
实操练习。本书也可作为有一定基础的读者案头的参考书,针对相应技术、配置方式等查
阅使用。
全书共分为8章,系统全面地以MySQL为实现平台介绍了数据库系统的原理及实现。
第1章主要对和数据库系统相关的部分概念作简单介绍。第2章开篇概述了MySQL的产生
和发展过程,并介绍了MySQL的组成部分及优势,MySQL的安装与配置、启动、暂停和退出、
MySQL管理工具的使用和实用程序以及数据库的基本操作等。第3章对数据表的各种操作
进行了介绍,讲解了约束条件、默认规则;在检索记录表方面从介绍SELECT基本查询开始,
逐步深入一些复杂的内容。第4章开篇先介绍了MySQL的几种基本数据类型,本章最后的
综合案例也提供了完整代码,并附带详细注解供读者参考。第5章对视图和触发器的相关
概念进行了论述。第6章对事务机制、事务的提交及事务的回滚和事务的特征与隔离进行
了介绍,读者通过实例可以体会事务管理的相关方法。第7章介绍了MySQL连接器的相关
概念,综合案例中的学生选课系统也提供了完整代码供读者练习体会MySQL连接JDBC的
方法。第8章介绍了MySQL中的一些常见函数的功能和用法,主要讲解了MySQL的备份
和恢复以及它们的语法格式和相关说明,最后介绍了用户管理。
WQ.indd12022/8/1617:18:27
MySQL数据库原理及实践教程
在本书编写过程中,乔钢柱负责撰写第1章,李晓波负责撰写第2章,张晓华负责撰写第3、
4、5、6章,井超撰写第7、8章,最后全书由乔钢柱负责统稿,并任主编。
特别感谢中北大学曾建潮教授对本书的指导,中北大学大数据学院数据科学与大数据
技术专业2017级本科生张苗苗同学为本书提供的协助。在此,也衷心感谢中国铁道出版社
有限公司的编辑为本书顺利出版所付出的努力。
编者
2022年2月
于中北大学怡丁苑
II
WQ.indd22022/8/1617:18:28
目录
第1章数据库基础知识�������������������������������������������������������������������������������1
1.1数据库系统1
1.1.1数据、信息、数据库2
1.1.2数据库管理系统2
1.1.3数据库管理系统的分类3
1.2数据库系统结构3
1.2.1数据库系统模式的概念3
1.2.2数据库系统的三级模式结构3
1.2.3数据库的二级映像功能与数据独立性5
1.2.4数据库系统用户结构5
1.3关系数据库7
1.3.1关系数据库概述7
1.3.2关系数据库设计7
1.3.3关系数据库的完整性13
1.4结构化查询语言SQL15
1.4.1SQL概述15
1.4.2SQL语言特点及基本语法16
1.4.3SQL语句分类16
1.4.4SQL的四种基本操作16
1.5实体关系模型19
小结22
经典习题22
第2章数据库的基本操作��������������������������������������������������������������������������23
2.1MySQL的概述23
2.1.1MySQL的产生和发展23
2.1.2MySQL的组成24
WQ.indd12022/8/1617:18:28
MySQL数据库原理及实践教程
2.1.3MySQL的优势25
2.2MySQL的安装和管理25
2.2.1下载MySQL25
2.2.2启动、暂停或退出MySQL27
2.3MySQL工具和实用程序29
2.3.1MySQL命令行实用程序29
2.3.2实用程序常用的图形化管理工具29
2.4数据库的创建30
2.4.1数据库的构成30
2.4.2使用命令行窗口创建数据库31
2.4.3使用图形化工具创建数据库31
2.5数据库的查看和选择32
2.6数据库的删除32
2.6.1使用命令行窗口删除数据库33
2.6.2使用图形化工具删除数据库33
2.7综合案例——数据库的创建和删除33
小结36
经典习题36
第3章数据表的基本操作���������������������������������������������������������������������������37
3.1创建表37
3.1.1创建表的语法形式37
3.1.2使用SQL语句设置约束条件38
3.1.3使用图形化工具创建表并设置约束条件41
3.2查看表结构42
3.2.1使用SQL语句查看表结构42
3.2.2使用图形化工具查看表结构42
3.3修改表43
3.3.1使用SQL语句修改数据表44
3.3.2使用图形化工具修改数据表49
3.4删除表50
3.4.1使用SQL语句删除数据表50
3.4.2使用图形化工具删除数据表51
II
WQ.indd22022/8/1617:18:28
目录
3.5检索记录表52
3.5.1SELECT基本查询52
3.5.2条件查询56
3.5.3分组查询57
3.5.4表的连接59
3.5.5子查询61
3.5.6联合查询63
3.6综合案例——学生选课系统综合查询64
小结68
经典习题68
第4章数据类型和运算符��������������������������������������������������������������������������69
4.1MySQL基本数据类型69
4.1.1整数类型69
4.1.2小数类型72
4.1.3字符串类型74
4.1.4日期时间类型75
4.1.5复合数据类型78
4.1.6二进制类型80
4.2MySQL运算符80
4.2.1算术运算符80
4.2.2比较运算符81
4.2.3逻辑运算符82
4.2.4位运算符83
4.2.5运算符优先级84
4.3字符集设置85
4.3.1MySQL字符集与字符排序规则85
4.3.2MySQL字符集的设置86
4.4综合案例——算术操作符87
小结96
经典习题96
III
WQ.indd32022/8/1617:18:28
MySQL数据库原理及实践教程
第5章视图和触发器���������������������������������������������������������������������������������97
5.1视图97
5.1.1视图概述97
5.1.2创建视图98
5.1.3查看视图102
5.1.4管理视图104
5.1.5使用视图105
5.2触发器108
5.2.1创建触发器108
5.2.2使用触发器109
5.2.3查看触发器110
5.2.4删除触发器110
5.2.5触发器的应用111
5.3综合案例——视图及触发器的应用113
5.3.1系统主要功能113
5.3.2E-R图113
5.3.3逻辑结构115
5.3.4数据库实施117
小结122
经典习题122
第6章事务管理������������������������������������������������������������������������������������123
6.1事务机制概述123
6.2事务的提交125
6.3事务的回滚127
6.4事务的特征和隔离129
6.4.1事务的四大特性129
6.4.2事务的隔离级别132
6.5解决多用户使用问题132
6.5.1脏读132
6.5.2不可重复读134
6.5.3幻读136
6.6综合案例——银行转账业务的事务处理137
IV
WQ.indd42022/8/1617:18:29
目录
小结140
经典习题140
第7章MySQL连接器JDBC和连接池��������������������������������������������������������141
7.1MySQL连接器141
7.2MySQL数据库连接过程142
7.3JDBC对象数据库操作145
7.3.1增加数据145
7.3.2修改数据145
7.3.3删除数据145
7.3.4查询数据146
7.3.5批处理146
7.4开源连接池146
7.5综合案例——学生选课系统147
小结165
经典习题166
第8章常见函数和数据管理���������������������������������������������������������������������167
8.1常见函数167
8.1.1数学函数167
8.1.2字符串函数172
8.1.3时间日期函数175
8.1.4数据类型转换函数177
8.1.5控制流程函数177
8.1.6系统信息函数178
8.2数据库备份与还原179
8.2.1数据的备份179
8.2.2数据的还原180
8.3MySQL的用户管理182
8.3.1数据库用户管理182
8.3.2用户权限设置184
8.4综合案例——数据库备份与恢复187
小结194
经典习题194
V
WQ.indd52022/8/1617:18:29
第1章
数据库基础知识
数据库可视为电子化的文件柜—存储电子文件的处所,用户可以对文件中的数据(运行)
新增、截取、更新、删除等操作。
数据库是以一定方式存储在一起、能给予多个用户共享、具有尽可能小的冗余度、与应用程
序彼此独立的数据集合。
数据库的系统结构是对数据的三个抽象级别,它们分别是内模式、概念模式和外模式。这个
三级结构之间一般差别很大,为了实现这三个抽象级别在内部联系和转换,数据库管理系统在三
级结构之间提供了两个层次的映像:外模式/概念模式映像、概念模式/内模式映像。这两层映
像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
从最终用户角度来看,数据库系统分为单用户结构、主从式结构、客户/服务器结构和分布式
结构。
本章还介绍了数据库的设计。在关系数据库方面,主要介绍了规范关系数据库的理论,
并给出了一个相应的实例。视频
学习目标
y掌握数据库管理系统的主要功能
y了解关系型数据库相关概念数据库基础
y掌握SQL的使用方法知识
1.1数据库系统
数据库系统是一个比较宽泛的概念,它包括数据库、数据库管理系统以及使用数据库的用户
和支撑数据库管理系统运行的软硬件。在此仅对和数据库系统相关的部分概念作简单介绍,更深
入的知识请读者参考相关教材或书籍。
1
01-02.indd12022/8/1617:18:22
MySQL数据库原理及实践教程
1.1.1 数据、信息、数据库
1.数据
数据(Data)是描述事物的符号记录,是数据库中存储的基本对象。数据可以是数值数据,
如某个具体数字,也可以是非数值数据,如声音、图像等。虽然数据有多种表现形式,但经过数
字化处理后,都可以输入并存储到计算机,并能为其处理的符号序列。
2.信息
信息(Information)是具有一定含义的、经过加工的、对决策有价值的数据。所以说信息是有
用的数据,数据是信息的表现形式。数据如果不具有知识性和有用性则不能称为信息。从信息处
理角度看,任何事物的属性都是通过数据来表示的,数据经过加工处理后,使其具有知识性并对
人类活动产生决策作用,从而形成信息。信息有如下特点:无限性、共享性、创造性。
3.信息与数据的关系
在计算机中,为了存储和处理某些事物,需要抽象出对这些事物感兴趣的特征组成一个记录
来描述。例如,学生档案中,如果人们感兴趣的是学生的姓名、性别、年龄、出生年月、籍贯、
所在系别、入学日期,就可以这样描述:李明,男,21,1985,浙江,计算机系,2004,因此这
里的学生记录就是数据。它的含义即所含信息是:李明是个大学生,1985年出生,男,浙江人,
2004年考入计算机系。
数据的形式不能完全表达其内容,需要经过解释。数据的解释是指对数据含义的说明,数据
的含义又称为数据的语义,也就是数据包含的信息。信息是数据的内涵,数据是信息的符号表示,
是载体。数据是符号化的信息,信息是语义化的数据。如黑白脸谱,所表示的数据是黑白点阵,
而所带有的信息是脸谱。
4.数据库
数据库(Database,DB)是长期存储在计算机内的、有组织的、可共享的数据集合。数据库
中的数据按一定的数据模型组织、描述和存储,用于满足各种不同的信息需求,并且集中的数据
彼此之间有相互的联系。具有较小的冗余度,较高的数据独立性和易扩展性。
1.1.2 数据库管理系统
数据库管理系统(DatabaseManagementSystem,DBMS)是为管理数据库而设计的计算机软
件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统是位于用户和操作
系统之间的一层数据管理软件,它的主要功能包括以下几个方面:
1.数据定义功能
提供数据定义语言DDL,用户通过它可以方便地对数据库中的数据对象进行定义。
2.数据操纵功能
提供数据操纵语言DML,用户可以使用操纵语言实现对数据库的基本操作,如查询、插入、
删除和修改等。
3.数据库的运行管理功能
数据库的建立、运行和维护由数据库管理系统统一管理、统一控制,以保证数据的安全性、
完整性、多用户对数据的并发使用以及发生故障后系统恢复。
2
01-02.indd22022/8/1617:18:22
第1章 数据库基础知识
4.数据库的建立和维护功能
它包括数据库初始数据的输入、转换功能、数据库转储、恢复功能,数据库的重组功能和性
能监视,分析功能等。这些功能通常由一些应用程序完成。
1.1.3 数据库管理系统的分类
数据库管理系统主要分为以下两类:
1.关系数据库
关系数据库是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数
据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。
几乎所有的数据库管理系统都配备了一个开放式数据库互连(ODBC)驱动程序,令各个数据
库之间得以互相集成。
典型代表有MySQL、Oracle、MicrosoftSQLServer、Access及PostgreSQL等。
2.非关系型数据库
非关系型数据库是对不同于传统的关系数据库的数据库管理系统的统称,与关系数据库最大
的不同点是不使用SQL作为查询语言。
典型代表有BigTable、Cassandra、MongoDB、CouchDB;还包括键值数据库ApacheCassandra、
LevelDB。
1.2数据库系统结构
1.2.1 数据库系统模式的概念
模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,它仅涉及到型的描述,不涉
及到具体的值。模式的一个具体值称为模式的一个实例(Instance)。同一个模式可以有很多实例。
模式是相对稳定的,而实例是相对变动的,因为数据库中的数据是在不断更新的。模式反映的是
数据的结构及其联系,而实例反映的是数据库某一时刻的状态。
1.2.2 数据库系统的三级模式结构
数据库系统结构分为三层:内模式、概念模式(模式)和外模式,如图1-1所示。这个三级
结构有时称为三级模式结构,是在1971年通过DBTG报告中提出的,后来收入在1975年的美国
ANSI/SPARC报告中。虽然现在DBMS的产品多种多样,并在不同操作系统支持下工作,但是大
多数系统在总的体系结构上都具有三级模式的结构特征。
从某个角度看到的数据特性称为数据视图(DataView)。
外模式最接近用户,是单个用户所能看到的数据特性,单个用户使用的数据视图的描述称为外
模式。
概念模式涉及到所有用户的数据定义,是全局的数据视图。全局数据视图的描述也称为
模式。
内模式最接近于物理存储设备,涉及到实际数据存储的结构。物理存储数据视图的描述称为
内模式。
3
01-02.indd32022/8/1617:18:22
MySQL数据库原理及实践教程
应用A应用B应用C应用D应用E
外模式1外模式2外模式3
外模式/概念模式映像
模式
概念模式/内模式映像
内模式
数据库
图1-1数据库系统的二级映像
1.概念模式(所有用户的公共视图)
一个数据库只有一个概念模式,它以某一种数据模型为基础,统一综合地考虑了所有用户的
需求,并将这些需求有机地结合成一个逻辑整体。
概念模式由许多记录类型的值组成。例如,它可能包括部门记录值的集合、职工记录值的集
合、供应商记录值的集合、零件记录值的集合,等等。概念模式根本不涉及物理表示和访问的技
术,它只定义信息的内容,这样在模式中不能涉及存储字段表示、存储记录队列、索引、哈希算法、
指针或其他存储和访问的细节。这样模式就可真正实现物理数据的独立性。
定义模式时,不仅定义数据的逻辑结构,还要定义数据之间的联系,定义与数据有关安全性、
完整性要求。
在数据库管理系统(DBMS)中,描述概念模式的数据定义语言称为模式DDL(SchemaData
DefinitionLanguage)。
2.外模式(用户可见的视图)
外模式也称子模式(Subschema)或用户模式,它是数据库用户能够看见和使用的局部数据的
逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示,是用
户和数据库系统的接口,是用户用到的那部分数据的描述。一个系统一般有多个外模式。
外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式
中的数据,数据库中的其余数据是不可见的。用户使用数据操纵语言DML(DataManipulation
Language)语句对数据库进行操作,实际上是对外模式的外部记录进行操作。
描述外模式的数据定义语言称为外模式DDL。有了外模式后,程序员或数据库管理员不必关
心概念模式,只与外模式发生联系,按照外模式的结构存储和操纵数据。
外模式又称为用户模式或子模式,通常是概念模式的逻辑子集。
3.内模式(存储模式)
一个数据库只有一个内模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的
表示方法。它定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。
注意:内模式和物理层仍然不同。内部记录并不涉及到物理记录,也不涉及到设备的约束。
比内模式更接近物理存储和访问的那些软件机制是操作系统的一部分,即文件系统。
4
01-02.indd42022/8/1617:18:23
第1章 数据库基础知识
描述内模式的数据定义语言称为内模式DDL。
1.2.3 数据库的二级映像功能与数据独立性
数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用户
只要抽象的处理数据,而不必关心数据在计算机中的表示和存储。三级结构之间一般差别很大,
为了实现这三个抽象级别在内部联系和转换,DBMS在三级结构之间提供了两个层次的映像:外
模式/概念模式映像、概念模式/内模式映像,如图1-1所示。
这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
1.外模式/概念模式映像
用于定义外模式和概念模式之间的对应性,即外部记录和内部记录间的关系。
当概念模式发生改变时,由数据库管理员对各个外模式/概念模式的映像作相应改变,可以使
外模式保持不变,应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与
程序的逻辑独立性,简称数据的逻辑独立性。
2.概念模式/内模式映像
用于定义概念模式和内模式间的对应性,实现两级的数据结构、数据组成等的映像对应关系。
概念模式/内模式映像定义了数据库全局逻辑结构与存储结构之间的对应关系,当数据库的存
储结构改变了,由数据库管理员对概念模式/内模式映像作相应改变,可以使概念模式保持不变,
从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
1.2.4 数据库系统用户结构
从最终用户角度来看,数据库系统分为单用户、主从式结构、客户/服务器结构和分布式结构。
1.单用户数据库系统
单用户数据库系统是一种早期的最简单的数据库系统。在这种系统中,整个数据库系统(包
括应用程序、DBMS、数据)都装在一台计算机上,由一个用户独占,不同机器之间不能共享数据。
如图1-2所示。
2.主从式结构数据库系统
主从式结构是指一个主机带多个终端的多用户结构。在这种结构中,数据库系统(包括应用
程序、DBMS、数据)都集中存放在主机上,所有处理任务都由主机来完成,各个用户通过主机的
终端并发地存取数据库,共享数据资源,如图1-3所示。
主机
微机
终端
图1-2单用户数据库系统图1-3主从式结构数据库系统
5
01-02.indd52022/8/1617:18:23
MySQL数据库原理及实践教程
3.客户/服务器结构数据库系统
主从式结构数据库系统中的主机是一个通用计算
机,既执行DBMS功能又执行应用程序。随着工作站服务器
功能的增强和广泛使用,人们开始把DBMS功能和应
用分开,网络中某个(些)节点上的计算机专门用于
执行DBMS功能,称为数据库服务器,简称服务器;
其他节点上的计算机安装DBMS的外围应用开发程客户机
(微机)
序,支持用户的应用,称为客户机,这就是客户/服
务器结构的数据库系统,如图1-4所示。
图1-4客户/服务器结构数据库系统
在客户/服务器结构中,客户端的用户请求被传
送到数据库服务器,数据库服务器进行处理后,只将结果返回给用户(而不是整个数据),从而显
著减少了网络上的数据传输量,提高了系统的性能、吞吐量和负载能力;另一方面,客户/服务器
结构的数据库往往更加开放。客户与服务器一般都能在多种不同的硬件和软件平台上运行,可以
使用不同厂商的数据库应用开发程序,应用程序具有更强的可移植性,同时也可以减少软件维护
开销。
4.分布式结构数据库系统
分布式结构是指数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同节
点上。网络中的每个节点都可以独立处理本地数据库中的数据,执行局部应用;同时也可以同时
存取和处理多个异地数据库中的数据,执行全局应用,如图1-5所示。它的优点是适应地理上分散
的公司、团体和组织对于数据库应用的需求。不足的是数据的分布存放给数据的处理、管理与维
护带来困难;当用户需要经常访问远程数据时,系统效率会明显地受到网络交通的制约。
客户机客户机
(微机)(微机)
服务器服务器
服务器服务器
客户机客户机
(微机)(微机)
图1-5分布式结构数据库系统
6
01-02.indd62022/8/1617:18:23
第1章 数据库基础知识
1.3关系数据库
1.3.1 关系数据库概述属性名
在关系数据库中,一个关系就是一张二维表,它由行和列
元组
组成,如图1-6所示。(t)
非码非码
表中的一行就是一个元组(也称记录),表中的列为一个属候选码
性,给每个属性起一个名即为属性名(也称字段名)。关系数据(主码)
库的特点是:图1-6关系(表)的结构
(1)关系中每个字段(属性)不可再分,是数据库中的最基本单位。
(2)每一列字段是同属性的。每个列的顺序是任意的。
(3)每一行记录由一个事物的诸字段项构成。记录的顺序可以是任意的。
(4)不允许有相同的字段名,也不允许有相同的记录行。每个关系都有主码关键字(Key)的
属性集合,用以唯一标识关系中的各个记录行。
(5)解决实际问题往往需要多个关系,关系和关系是有联系的,这种联系也用关系表示。
在一个给定的应用领域中,所有关系及关系之间联系的关系的集合构成一个关系数据库。
1.3.2 关系数据库设计
数据库的设计质量,直接影响数据库管理系统对数据的控制质量。数据库设计是指对于一个
给定的应用环境,根据用户的信息要求、处理需求和数据库的支撑环境,利用数据模型和应用程
序模拟现实世界中该单位的数据结构和处理活动的过程,是数据设计和数据处理设计的结合。规
范化的数据库设计要求数据库内的数据文件的数据组织应获得最大程度的共享、最小的冗余度,
消除数据及数据依赖关系中的冗余部分,使依赖于同一个数据模型的数据达到有效的分离。保证
在输入、修改数据时数据的一致性和正确性,保证数据与使用数据的应用程序之间的高度独立性。
同时在设计时还要将数据和操作数据的行为紧密结合起来,保证数据的完整性约束。
1.需求分析
需求分析阶段的任务是收集数据库所需要的信息内容和数据处理规则,确定建立数据库的目
的。在需求分析调研中,必须和用户充分讨论,确定数据库所要进行的数据处理范围,数据处理
的流程以及数据取值范围的界定。
描述需求分析常用的方法有数据流图、数据字典等。
2.概念结构设计
概念结构设计是对现实世界的一种抽象,即对实际的人、物、事和概念进行人为处理,抽取
人们关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述。
为了能够完成上述目标,我们把现实世界中客观存在并可相互区别的事物称为实体(Entity)。
如一个职工、一个学生、一个部门、学生的一次选课、老师与系的工作关系。
把描述实体的某一特性称为属性(Attribute),一个实体可以由若干个属性值来描述。如一个学生
实体可以由学号、姓名、性别、出生日期等属性的属性值(20021001、张三、男、1986-5-6)来描述。
同类实体中的实体彼此之间是可以区别的,能够唯一标识实体的属性集合称作实体的码或关键字。
实体集之间存在各种联系(Relationship),主要有三类:一对一联系(1:1)、一对多联系(1:n)、
7
01-02.indd72022/8/1617:18:23
MySQL数据库原理及实践教程
多对多联系(m:n)。
1)一对一联系(1∶1)
对于实体集A中的每一个实体,实体集B中有0个或1个实体与之联系,反之亦然,则称实
体集A与实体集B具有一对一的联系。
例如,一个班级只有一个班长,一个班长只在一个班中任职,则班级与班长之间具有一对一联系。
2)一对多联系(1∶n)
对于实体集A中的每一个实体,实体集B中有0个或多个实体与之联系,反之,对于实体集B
中的每一个实体,实体集A中有0个或1个实体与之联系,则称实体集A与实体集B具有一对多的联系。
例如,一个班级有若干个学生,每个学生只在一个班级中学习,则班级与学生之间具有一对多联系。
3)多对多联系(m∶n)
对于实体集A中的每一个实体,实体集B中有0个或多个实体与之联系,反之,对于实体集B
中的每一个实体,实体集A中有0个或多个实体与之联系,则称实体集A与实体集B具有多对多的联系。
例如,一门课程同时有若干个学生选修,而一个学生同时选修多门课程,则课程与学生之间
具有多对多联系。
描述概念模型的有力工具是E-R模型。
3.逻辑结构设计
关系模型的逻辑结构是一组关系模式的集合。E-R图则是由实体、实体的属性和实体之间的
联系三个要素组成的。所以将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之
间的联系转化为关系模式,这种转换一般遵循如下原则:
1)实体与实体属性的转换
一个实体转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。
例如,学生实体可以转换为如下关系模式,其中学号为学生关系的码。
学生(学号,姓名,年龄,所在系)。
2)实体间联系的转换
(1)一个1∶1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换
为关系的属性,每个实体的码均是该关系的候选码。
如果与某一端对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码
和联系本身的属性。
例如,有一个学生管理的联系,即一个职工管理一个班级,一个班级只能由一个职工管理,
该联系为1∶1联系,将其转换为关系模式有以下三种方法:
a.转换成一个独立的关系模式
管理(职工号,班级号)
b.将其与班级关系模式合并,增加职工号属性,即
班级(班级号,学生人数,职工号)
c.将其与教师关系模式合并,增加班级号属性,即
教师(职工号,姓名,性别,职称,班级号)
推荐使用合并的方法。
(2)一个1∶n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
8
01-02.indd82022/8/1617:18:23
第1章 数据库基础知识
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换
为关系的属性,而关系的码为n端实体的码。
例如,假如有一个学生组成的联系,即一个学生只能属于一个班级,一个班级可能有多个学
生,该联系为1∶n联系,将其转换为关系模式有两种方法:
a.转换成一个独立的关系模式
组成(学号,班级号)
b.将其与学生关系模式合并,增加班级号属性,即
学生(学号,姓名,年龄,所在系,班级号)
推荐使用合并的方法。
(3)一个m:n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体
码的组合。
例如,有一个学生选修的联系,即一个学生可以选修多门课程,一门课程可以被多个学生选修,
该联系是一个m:n联系,将其转换为如下关系模式。
选修(学号,课程号,成绩)
4.数据表的优化与规范化
在数据需求分析的基础上,进行概念结构和逻辑结构设计,并将数据信息分割成数个大小适
当的数据表。如我们可以得到学生的相关数据信息(见表1-1),学生选课数据表包含SNO(学号)、
SNAME(姓名)、SSSN(身份证号)、SDEPA(所在院系)、SMTEL(电话)、SCITY(城市)、CNO(课
程编号)、CNAME(课程名称)、GRADE(成绩)等属性。
表1-1学生选课数据表
SNOSNAMESSSNSDEPASMTELSCITYCNOCNAMEGRADE
060101王东民******19880526***计算机135****杭州102C语言90
060102张小芬******19891001***计算机131****宁波102C语言95
060103李鹏飞******19871021***计算机139****温州103数据结构88
060101王东民******19880526***计算机135*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 市政府权威指南汇编采购合同模板
- 配电箱协作共赢采购协议
- 车库买卖合同书模板
- 简版保价合同协议
- 成都市房产买卖合同样式
- 二手房屋买卖合同的常见问题
- 挂名股东权责合同标准
- 铝合金合作开发协议
- 农用三轮车购销协议
- 二手房买卖合同风险防范
- 铁路建设项目施工企业信用评价办法(铁总建设〔2018〕124号)
- 模具报价表精简模板
- 形式发票模板 PI模板 英文版
- 初一的最美的风景高分的作文600字
- 高考英语单项选择题题库题
- 检验检测机构资质认定现场评审日程表及签到表
- 完整版高低压开关柜投标文件技术标
- 兰州市行政区划代码表
- 管鲍之交-历史剧剧本(共4页)
- [交流][jtag]跟我学jtag协议破解——第一弹初识jtagtap状态机
- 尼康FM2说明书25页
评论
0/150
提交评论