数据模型
1、SQL Server数据库是小型关系数据库管理系统(DBMS)
2、关系就是二维表,属性就是字段
3、数据完整性:
实体完整性(必须有主键,唯一性和不能为空),
参照完整性(外键必须与主表中的主键一致,外键值必须是主表中存在的值)
域完整性(字段值的范围,比如年龄或分数不能为负值,性别只能为男女)
用户定义的完整性
4、三种范式
第一范式:属性的原子性
第二范式:属性必须完全依赖于主码(不能依赖主码的一部分)
第三范式:非主属性之间不能相互依赖
概念模型的表示方法
• 将信息世界的几大概念直观地描述出来
• 概念模型是现实世界到信息世界的第一层抽象。
• 概念模型易于被用户所理解,是用户与数据库设计人员之间交流的工具 。
• 目前主流方法
实体 - 联系方法 (Entity-Relationship)
一般称为 E-R 图来描述
ER图的组成元素
ER模型是一种用图形表示数据及其联系的方法,ER模型通过ER图来表示。
ER图包括三个组成元素,分别是 实体 、 联系 和 属性 。
ER图绘制简单,图符较少,简单易懂,可以快速建立待开发系统的概念模型。
实体
实体(Entity)是现实世界中客观存在的,而且可以相互区别的事物或活动的抽象。
例如,一个公司, 一门课程,一名学生、一次足球赛比赛 。
在ER图中,实体用矩形框表示,矩形框内写明实体的名称。
属性
每一个实体都具有一定的固有特征,而这些特征可以区分开每一个实体。在数据库系统中,实体所具有的某一特性被称为属性。
属性(Attribute)是描述实体或联系中的一种特征。一个实体或联系通常具有多个特征,需要多个相应属性来描述。
码(Key)或键是属性的一种,它是实体间相互区别的一种惟一标识。
在ER 图中,属性用椭圆形表示,椭圆形内写明属性的名称,用无向边将其与相应的实体连接起来,一般用下划线标注作为主键的属性。
联系
实体内部的联系(Relationship)通常指组成实体的各个属性之间的关系,实体外部的联系通常指不同实体间的关系。
在ER图中联系用菱形表示,菱形内写明联系的名称,用无向边分别与实体连接起来,在无向边上注明联系的类型( 1:1,1:n,m:n )
如果联系有属性,则这些属性同样用椭圆表示,用无向边与联系连接起来。
在某些情况下,还可能出现多个实体(大于两个实体)之间存在联系,这种联系称为多元联系,这与两个实体之间的二元联系相对应。
ER图实例
•思考
• 1. 请用 ER 图表示下列关系,并在实体图上标明属性。
• 顾客( 顾客编号 ,顾客姓名,电话,地址)
• 商品( 商品编号 ,商品名称,价格)
• 购买(顾客编号,商品编号,购买数量,购买时间)
• 2. 一个教室可以容纳多个班级上课,但是一个班级只能在一个教室上课。识别其中的实体及联系,并绘制相应的 ER 图。
ER模型的建立
实体联系模型的创建
实体联系模型的创建过程分为两个步骤
局部ER图设计
全局ER图设计及优化
局部ER图设计
确定范围
在设计局部时首先要确定局部ER图设计的范围,规模较大的软件系统包括多个子系统。
为了降低数据库设计的难度,可以先设计每个子系统的数据库,绘制局部的ER图,一个范围即对应一个相对独立的子系统 。
识别实体
在确定的范围内,寻找和识别实体,确定实体的键。
在需求文档中根据人员、组织、物品、事件等 名词 来寻找实体;
实体找到后,给实体取一个 合适的名称 ,给实体正确命名时,可以发现实体之间的差别;根据实体的特点,标识实体的 主键 。
确定联系
对于识别出的实体,进行 两两组合 ,判断实体之间是否存在联系,联系的类型是 1:1 , 1:n , m:n ,如果是 m:n 的实体,考虑是否可以分解,增加关联实体,使之成为 1:n 的联系。
• 定义属性
• 属性是描述实体的 特征 和组成
• 相同实体的属性应该具有相同的 数量 、 名称 和 数据类型
• 在实体的属性中,去掉软件系统 不需要 的属性
• 必要时,需要人为地增加属性
• 例如:当实体缺少明确的主键,需要人为地设置主键
• 如果实体和属性之间没有明显的区别,能作为属性对待的,尽量作为属性对待
• 定义属性的基本原则是:
• 属性是 不可再分 的数据项
属性不能与其它实体产生联系
• 全局 ER 图设计及优化
• 局部 ER 图设计好后,需要将所有的局部 ER 图集成起来,形成一个全局 ER 图。
合 并
不同的局部ER图面向不同的应用,可能由 不同的人 进行设计或同一个人 不同时间 进行设计
各个局部ER图可能存在许多 不一致 的地方,称之为 冲突
合并局部ER图的主要目的是 消除冲突
全局ER图设计及优化
什么是冲突?
属性冲突 :相同的属性在不同的 ER 图中属性值的 类型 、 取值范围 或 单位 不同。
命名冲突 :相同的实体或属性在不同的局部 ER 图中有不同的名字,不同的实体或属性有相同的名字。
结构冲突 :同一事物在不同的局部 ER 图中,有的作为实体,有的作为属性;相同的实体在不同的局部 ER 图中 属性的个数 不一致;同一实体的在局部 ER 图中 键不同 ;实体间的联系在不同的局部 ER 图中联系的 类型不同 。
全局ER图设计及优化
重 构
重构的目的是消除不必要的 冗余
冗余属性 是指可以用其他属性导出的属性。
冗余联系 是指可以通过其他实体之间的联系导出的联系。
冗余属性和冗余联系容易破坏数据库的完整性,给数据库的维护增加困难,应该予以消除。
• 实体之间的联系如下:
(1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。
(2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓库和职工之间是一对多的联系。职工实体型中具有一对多的联系
(3)职工之间具有领导-被领导关系。即仓库主任领导若干保管员。
(4)供应商、项目和零件三者之间具有多对多的联系