希望你开心,希望你健康,希望你幸福,希望你点赞!
最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!!
喵喵喵,你对我真的很重要!
目录
前言
认识数据库
常见的数据库管理系统应用案例。
1.数据(Data)
2.数据库(DataBase ,简称DB )
3.数据库管理系统(DBMS)
认识关系型数据库
实体、属性、联系
绘制E-R图
关系模式的规范化
1.第一范式(1NF)
2.第二范式(2NF)
3.第三范式(3NF)
4.第二范式(2NF)和第三范式(3NF)的区别
E-R图
实体间的联系
联系(Relationship)的基本概念
联系的度数
映射基数
一对一联系(1:1)
一对多联系(1:n)
多对多联系(m:n)
E-R图
E-R图的画法
举个栗子
学习数据库,一般要先学数据库原理。
将面对很多抽象难懂的概念和理论知识,如数据模型、实体、属性、联系、E-R图、关系模式和数据建模等。
初学者,会感觉原理部分特别的枯燥。
了解数据库的基本概念;
认识关系模型和关系型数据库;
认识实体和属性;
认识C/S 、B/S模式架构;
学习数据库的概念结构设计和逻辑设计方法。
学习关系模式的规范化;
绘制E-R图,建立数据库概念模型;
将E-R图转换成关系模式进行数据模型的建立
一、了解实体之间的联系
二、熟悉概念模型表示方法E-R图
三、掌握E-R图的画法
1.留言板。
2.进销存管理系统。
3.ERP系统。
4.图书管理系统。
1.数据(Data)
数据实际上就是描述事物的符号记录。如文字、数字、日期时间、图片、音频、视频等。
2.数据库(DataBase ,简称DB )
数据库是长期储存在计算机内的、有组织的、可共享的数据集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
3.数据库管理系统(DBMS)
数据库管理系统是一个负责对数据库进行数据组织、数据操纵、维护、控制以及数据保护和数据服务等的软件系统,是数据库的核心。
常用的数据库管理系统有MySQL、MS SQL Server、Oracle、DB2、Accesst和Sybase等。
1.认识数据模型
数据模型由3部分组成:模型结构、数据操作和完整性规则。
DBMS所支持的数据模型分为三种:
层次模型:用树形结构表示实体及其之间的联系
网状模型:用网状结构表示实体及其之间的联系
关系模型:将一个没有重复行、重复列的二维表看成一个关系,每个关系都有一个关系 名。每一行在关系中称为元组(记录) ,每一列在关系中称为属性(字段),每个属 性 都有一个属性名,属性值则是各元组属性的取值。
2.认识关系数据库
关系数据库是创建在关系模型基础上的数据库。关系数据库是以二维表来存储数据库的数据的。
关系模式是对关系的描述,即表的结构。
格式:关系表名(字段1,字段2,…,字段n)
如:EMPLOYEES(E_ID,E_name,sex,Professional,education,Political,birth,marry,Gz_time,D_id,bz)
通常指定某个字段或字段的组合的值来唯一地表示对应的记录,我们把这个字段或字段的组合称为主码(也叫主键或关键字)。
客观存在并相互区别的事物称为实体。如:
一个人、企业、学校、院系、学生。
要描述一位学生,可用学号、姓名和年龄等特征信息项来表示。学号、姓名和年龄就是学生的属性,不同学生属性不同。
实体与实体之间往往存在相互关系,叫“联系”。联系通常有3种:一对一(1∶1)关系、一对多(1∶M)关系和多对多(M∶N)关系。
通常,在数据库设计时,通常用图E-R图(Entity-Relationship Approach来更加直观地描述实体、实体的组成属性,以及实体和实体之间的联系。
用矩形表示实体,用椭圆表示实体的属性,用菱形表示实体型之间的联系,并用无向直线将其与相应的实体连接起来。
复杂的,可先设计局部E-R图,然后综合并优化
举个栗子:
从E-R图转换为关系模式
一个关系数据库由一组关系模式组成,称为关系模型,每一个关系由一组属性名组成。
departments(单位编号,单位名称,主任,电话)
teachers(教师编号,教师姓名,性别,职称,来校时间,单位编号)
students(学生编号,学生姓名,性别,出生日期,单位编号)
course(课程编号,课程名你,学时,学分,单位编号)
selectcourse(学生编号,课程编号,成绩)
teach(教师编号,课程编号)
在属性下面加横线表示主键。
关系模式不仅表示出了实体的数据结构(属性)关系,也反映了实体之间的逻辑联系。
E-R图中联系如何转换到关系模式中??
院系与教师是一对多的关系,把departments的主键(单位编号)加入到teachers的关系模式中,作为teachers的一个属性,建立起之间的联系。
学生与院系是一对多的关系,把departments的主键(单位编号)加入到students的关系模式中,作为students的一个属性,建立起之间的联系。
院系与课程的关系也是一对多的关系。
教师与课程是多对多的关系,要单独对应一个关系模式teach,把teachers的主键和course主键一起加入teach中,并共同作为主键,建立之间联系。
学生与课程是多对多的关系,要单独对应一个关系模式selectcourse,把students的主键和course的主键一起加入到selectcourse,共同作为主键,建立起之间的联系。
构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。关系按其规范化程度从低到高可分为5级范式,分别称为1NF、2NF、3NF(BCNF)、4NF和5NF。
满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以此类推。
一般说来,数据库只需满足第三范式。
所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,也不能有重复的属性。
简而言之,第一范式就是无重复的列。
teachers(教师编号,教师姓名,性别,职称)
teachers(教师编号,教师姓名,性别,职称,联系方式) teachers(教师编号,教师姓名,性别,职称,手机,家庭电话,办公电话,QQ)。
第二范式(2NF)必须首先满足第一范式(1NF)。
(1)表必须有一个主键,实现每个记录可以被唯一地区分。
(2)实体的其他属性完全依赖于主键,而不能只依赖于主键的一部分(有时主键是由多个列组成的复合主键)。如果存在,那么这个属性和主键的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。
不满足2NF的关系模式会出现:插入异常、数据冗余、更新异常、删除异常。
teachers(教师编号,教师姓名,性别,职称)
Selectcourse(学生号,课程号,课程名,学时,学分,成绩)
course(课程号,课程名,学时,学分)
selectcourse(学生号,课程号,成绩)
满足第三范式(3NF)必须先满足第二范式(2NF),并且,要消除传递函数依赖。
teachers(教师号,姓名,性别,系别,系名,系主任,院系电话)
其中: (教师号)→(系别)→(系名,系主任,院系电话)
teachers(教师号,姓名,性别,系别)
departments(系别,系名,系主任,院系电话)
不满足第三范式(3NF)的关系往往造成数据的重复存储(冗余)。
新关系包括两个关系模式,它们之间通过teachers中的外键(系别)进行联系,需要时再进行自然联接,恢复了原来的关系。
同理,图1.5所示的数据表也可以分拆为两个。
Students(s_no,s_name,sex,birthday,address,d_ID)
Departments(d_ID,d_name,project)
(1)2NF:非主键列是否完全依赖于主键,还是依赖于主键的一部分。
(2)3NF:非主键列是直接依赖于主键,还是直接依赖于劳动其他列。
联系(Relationship)的基本概念
实体内部及实体集之间的相互关系称为联系。
在现实世界中,事物之间常常有联系。
例如,学生对课程的学习就是学生与课程之间的联系,而部门对员工的管理就是员工同部门之间的联系。
联系是关系数据库的最重要思想,它将若干离散的数据联系到了一起,你可以通过一个实体查找到与它有关系的所有实体。
联系的度数
联系的度数是指联系所涉及的实体个数。按照联系的度数,可以把联系分成以下几类:
1)一元联系
涉及单个实体的联系,即1个实体内部的联系,递归联系,自反联系。
2)二元联系
指两个实体之间的联系,这种联系最为常见。
3)多元联系
涉及两个以上实体的联系
映射基数
• 也叫映射比例,指明实体中的一个实例通过一个联系能同另一实体相联系的实例数目。映射的基数在描述二元联系时非常有用。• 对于实体 A 和 B 之间的二元联系 R 来说,映射基数只可能是下列三种(或四种)情况之一。• 1 )一对一联系• 2 )一对多(或多对一)联系• 3 )多对多联系•按照映射基数,可以把联系分成以下几类:一对一联系(1:1) 、一对多联系(1:n) 、多对多联系(m:n)
一对一联系(1:1)
设有两个实体集A和B,如果实体集A与实体集B之间具有一对一联系,则:实体集B中至多有一个(也可以没有)实体与之联系;反之亦然,则称实体集A与实体集B具有一对一的联系,记为1:1 。
一对多联系(1:n)
设有两个实体集A和B,如果对于实体集A中每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中每一个实体,实体集A中至多有一个实体与之联系。则称实体集A与实体集B具有一对多联系,记作(1:n)
多对多联系(m:n)
有两个实体集A和B,如果对于实体集A中每一个实体,实体集B中有n个实体,(n≥0)与之联系,反之,对于实体集B中每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。
– 概念模型的表示方法很多,其中最为常用的是于 1976 年提出的实体 - 联系方法 (Entity-Relationship Approach) ,即 E-R 模型。–– E-R 模型用 E-R 图描述现实世界,构造概念模型。–– E-R 图最基本概念是实体、属性和联系。它描述清晰,易于用户理解,是数据库设计人员与用户之间交流、沟通的有效工具。– E-R图易于转换为在计算机上最终实现的逻辑数据模型(如关系模型)和物理数据模型
1. E-R图方法提供了表示实体集、属性和联系的方法,根据这三种基本成分的表示,对现实世界中的任何事物及其联系,都可以用图表示出来,这种图就称为E—R图。
2.实体集与对应属性用线段(无向边)连接,主码用下划线标识
3.实体集间的联系用菱形表示 ,联系的属性也用椭圆表示。
4.联系的映射基数表示(一对一联系(1:1) 、一对多联系(1:n) 、多对多联系(m:n) )
5、联系的度数表示
• 一元联系• 某一个职工领导若干名职工,而一个职工仅被一个领导所管理,而领导本身也是职工,从分析得知,职工实体存在着一对多的自关联的领导关系。
6.实体间多重联系的表示
某医院要设计一个员工管理系统,管理科室和医生信息。每个科室有若干医生,每个医生只能属于一个科室,每个科室有一位负责人,该负责人同时又是该科室的医生。
医生与科室两个实体集间,存在1种以上的联系。
7、画E-R图的基本步骤
a) 对需求进行分析,从而确定系统中所包含的实体b) 分析得出每个实体所具有的属性c) 找出每个实体的键d) 确定实体之间的联系
举个栗子
实际操作画E-R图
1)对需求进行分析,从而确定系统中所包含的实体
①用户:用于管理新闻发布系统中的用户,根据用户级别不同,用户可能发布、审核、评论新闻,管理员还可以管理用户。
②新闻类别:用于管理新闻发布系统中的新闻类别,每一条新闻属于一个新闻类别。
③新闻:用于管理新闻发布系统中的新闻,这是新闻发布系统的主要实体。
④新闻评论:用于管理新闻发布系统中的新闻评论,每一条新闻可以有多个评论,每个用户都可以针对不同新闻发表评论。
⑤部门:用于管理新闻发布系统中的部门,每一条新闻归属于一个部门,每一个部门包含一些用户,部门又分级别,1级部门管理2级部门。
2)分析得出每个实体所具有的属性
①用户:用户的属性有编号、姓名、登录密码、级别、状态等。
②新闻类别:新闻类别的属性有编号、名称、状态等。
③新闻:新闻的属性有编号、标题、发布时间、点击次数、新闻内容等。
④新闻评论:新闻评论的属性有编号、评论时间、评论内容等。
⑤部门:部门的属性有编号、名称、状态、部门等级等。
3)找出每个实体的键
①用户:编号。
②新闻类别:编号。
③新闻:编号。
④新闻评论:编号。
⑤部门:编号。
4)确定实体之间的联系
①部门包含用户:一对多
②部门管理部门:一对多
③新闻类别包含新闻:一对多
④新闻归属部门:多对一
⑤用户发布新闻:一对多
⑥用户审核新闻:一对多
⑦用户发布评论:一对多
希望你开心,希望你健康,希望你幸福,希望你点赞!
最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!!
喵喵喵,你对我真的很重要!