SQL Server数据库学习笔记-概念数据模型
概念数据模型(Conceptual Data Model)也称为信息模型。它是对客观事物及其联系的抽象,用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具。概念数据模型摆脱了计算机系统及数据库管理系统的具体技术问题,集中精力分析数据及数据之间的联系等,与具体数据库管理系统无关。概念数据模型必须转换成逻辑数据模型,才能在数据库管理系统中实现。它强调其语义表达能力,即能够较方便、直接地表达应用中的各种语义只是。这类模型概念简单、清晰、易于被用户理解,是数据库设计人员和用户之间进行交流的语言。
Pter Pin-Shan Chen在1976年提出的实体-联系的方法,简称E-R模型(Entity-Relationship Model),是最为著名的一种概念模型的表示方法。该方法用E-R图来描述现实世界的概念模型。E-R模型能够清楚地表达被描述对象的语义,用图形化方式描述数据及其之间的关系,简单、容易理解掌握、且易被转换成关系数据模型。
为了适应新的应用需求,在基本E-R模型的基础上又提出了扩展实体联系模型(Extend entity-Relationship Model),简称为“EER模型”。这种模型能表示更多的语义,扩充了子类型的概念,为面向对象的数据库设计提供了邮箱工具。
1. 概念模型的基本概念
实体(Entity)
客观存在并可相互区分的事务称为实体。实体可以是具体的人、事和物,也可以是抽象的概念或联系。例如,学生是一个实体。
属性(Attribute)
实体所具有的若干特征称为属性,其中每一个特征就称为实体的一个属性。属性必须相对实体而存在。例如,学生实体可以由学好、姓名、性别、出生年份、所属院系、入学年份等属性组成(20140505,张珊,女,1992,计算机系,2014),这些属性组合起来表征了某一个学生。
码(Key)
唯一标识实体的属性集称为码。例如,学号是学生实体的码。
域(Domain)
属性的取值范围称为该属性的域。例如,学号的域为6位整数,姓名的域为字符串集合,年龄的域为小于28的整数,性别的域为(男,女)。
实体型(Entity Type) 实体型由实体名称和属性名称集合组成的形式来抽象和刻画同一类实体。例如,学生(学号,姓名,性别,出生年份,所属院系)就是一个实体型。
实体集(Entity Set)
同一类型实体的集合称为实体集。例如,全体学生就是一个实体集。
联系(Relationship)
现实世界中事物之间的联系在概念模型中必然要加以反映。一般存在两类联系:一是实体内部联系,通常是指实体的各属性之间的联系;二是实体之间的联系,通常是指不同实体之间的联系。
2. 联系
两个实体型之间的联系称为二元联系,是现实世界大量存在的联系,可以分为3类。
(1) 一对一(1:1)联系
实体集A只和实体集B有关系,同样实体B只和实体A有关系,记为1:1,。例如,一个学校只有一个正校长,而一个校长只在一个学校任职,则学校与校长之间具有一对一联系。
(2)一对多或多对一联系
实体集A在实体集B中对应多个实体,B中每个实体对应A中的一个实体,记为1:n。反之亦然,记为n:1。例如,一个专业中有若干名学生,而每个学生只在一个专业中学习,则专业与学生之间具有一对多的联系。
(3)多对多(m:n)联系
实体集A在实体集B中对应多个实体,反之B中每个实体对应A中的多个实体,记为m:n。例如,一个教师可以有很多学生,一个学生也可以有多个老师,则教师与学生之间具有多对多的联系。

实际上,一对一联系是一对多联系的特例,而一对多联系有事多对多联系的特例。
一般情况下,3个以上的实体型之间也存在着一对一、一对多、多对多的联系,称为多元联系。例如,对于课程、教师与参考书3个实体型,如果一门课程可以有若干个教师讲授,使用若干本参考书,而每一个教师之讲授一门课程,每一本参考书只供一门课程使用,则课程与教书、参考书之间的联系是一对多的。

同一个实体集内的各个实体之间也可以存在一对一、一对多、多对多的联系,称为一元联系。例如,职工实体集内部具有领导和被领导的联系,即某一职工(干部)领导若干名职工,而一个职工仅被另外一个职工直接领导。因此是一对多的联系。

3. 概念模型的表示方法
概念模型的表示方法很多,其中最著名也是最常用的表示法是E-R方法,也称为E-R模型。它用E-R图来描述现实世界的概念模型。E-R图的主要成分是实体型、属性和联系。
(1)实体型:用矩形表示,矩形框内写明实体名。
(2)属性:用椭圆形表示,并用无向边把实体与属性连接起来。
(3)联系:用菱形表示,菱形框内写明联系名,并用无向边分别把菱形与有关实体相连接,在无向边旁标上联系的类型(1:1,1:n或m:n)。需要注意的是,如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。
例如,学校中有一个校长和若干个班级,每个班级有若干个教师和学生,每个教师教授许多学生,每个学生都有学号、姓名、性别、班级、入学时间属性。

需要说明的是,E-R图的绘制有两种方法:集成法和分离法。集成法是将一个系统的所有实体、实体属性,实体与实体之间的联系全部画在一个图上,形成一个完整的E-R图。这种画法适合描述规模不大的数据库系统,图2-5所示即是集成法绘制的E-R图。分离法是先分别画各个实体及其属性图,然后再画实体间联系图,这种画法适合描述规模较大的数据库系统。
SQL Server数据库学习笔记-概念数据模型的更多相关文章
- SQL Server数据库学习笔记-E-R模型
实体(Entities)联系(Relationships)模型简称E-R模型也称E-R方法,是由P.P.Chen于1976年首先提出的.还有一个关键元素Attributes-属性,它提供不受任何数据库 ...
- SQL Server数据库学习笔记-设计表时应该考虑的因素
设计数据库其实就是设计数据库中的表.到底要注意些什么才能够设计好一个数据库呢?一个宗旨,8个建议. 一个宗旨“尽量少的表,每个表中尽量少的列,合理的表结构”. 8个建议: 第一个,首先要考虑的是咱们这 ...
- SQL Server数据库学习笔记-三大范式
第一范式(First Normal Form,简称1NF):数据库表中的字段都是单一属性的,不可再分.这个单一属性由基本类型构成,包括整型.实数.字符型.逻辑型.日期型等.要求一个属性只包含一个值,多 ...
- SQL Server数据库学习笔记-外键
关于主键的话大家很好理解,主键的主要作用就是用来标识一条数据是唯一的,也就是保证数据的实体完整性.防止数据重复.但是外键的话就有许多的疑问了,那外键是咋回事儿呢? 1. 外键的定义: 外键(FK)是用 ...
- 关于SQL SERVER数据库学习总结
对于SQL SERFVER数据库也学了有一阵子了,自己也对自己所学做了一些总结. 我们首先学习数据库设计的一些知识点和用SQL语句建库. 设计数据库步骤:需求分析阶段,概要设计阶段,详细设计阶段, 建 ...
- C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用
C#面试题(转载) 原文地址:100道C#面试题(.net开发人员必备) https://blog.csdn.net/u013519551/article/details/51220841 1. . ...
- SQL Server数据库学习总结
经过一段时间的学习,也对数据库有了一些认识,数据库基本是由表,关系,操作组成:对于初学者首先要学的 一图胜“十”言:SQL Server 数据库总结 一个大概的总结 经过一段时间的学习,也对数 ...
- SQL Server 数据库基础笔记分享(下)
前言 本文是个人学习SQL Server 数据库时的以往笔记的整理,内容主要是对数据库的基本增删改查的SQL语句操作和约束,视图,存储过程,触发器的基本了解. 注:内容比较基础,适合入门者对SQL S ...
- SQL Server 数据库基础笔记分享(上)
前言 本文是个人学习SQL Server 数据库时的以往笔记的整理,内容主要是对数据库的基本增删改查的SQL语句操作和约束,视图,存储过程,触发器的基本了解. 注:内容比较基础,适合入门者对SQL S ...
随机推荐
- java学习之(垃圾回收)
程序无法精确控制java垃圾回收的时机,但依然可以强制系统进行垃圾回收--这种强制只是通知系统进行垃圾回收, 但系统是否进行垃圾回收依然不确定.大部分时候,程序强制系统垃圾回收后总会有一些效果,强制系 ...
- 正宗PC Unix实验环境
首先解释一下PCUNIX环境,在PC服务器上可以安装多种UNIX系统例如ScoUnix,SunSolarisx86系统,BSD系统等等,但是唯一应用在生产系统(例如邮政储蓄,证券和某些银行前置机等)的 ...
- 使用.NET MVC框架项目开发流程(项目开发流程)
MVC项目开发流程 整理需求,进行需求分析.项目设计. 整理数据项,建数据库做前期准备,并整理字典. 建立所需数据库表和视图和模型. 页面实现其初步功能(跳过逻辑后台代码),只是实现页面之间的跳转以及 ...
- Duilib学习笔记《03》— 控件使用
在前面已经对duilib有个一个基本的了解,并且创建了简单的空白窗体.这仅仅只是一个开始,如何去创建一个绚丽多彩的界面呢?这就需要一些控件元素(按钮.文本框.列表框等等)来完善. 一. Duilib控 ...
- Linux之samba搭建
参考资料: http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html
- 实现在Android简单封装类似JQuery异步请求
在android开发中经常会使用异步请求数据,通常会使用handler或者AsyncTask去做,handler 配合message 使用起来比较麻烦,AsyncTask 线程池只允许128个线程工作 ...
- s3c6410_u-boot-2010.03移植
开发环境: 开发板 FriendlyARM Tiny6410 主机 CentOS release 6.4 (Final) 参考: http://www.cnblogs.com/plinx/archiv ...
- 如何调节datagridview中字体
设置ColumnHeaderDefaultCellStyle的Font属性 或者 编程 datagridview.Columns[index].DefaultCellStyle.Font.Size=“ ...
- RequireJS和AMD规范
目录 概述 define方法:定义模块 require方法:调用模块 AMD模式小结 配置require.js:config方法 插件 优化器r.js 参考链接 概述 RequireJS是一个工具库, ...
- Silverlight IIs发布问题
1.在IIS上部署系统没有问题,在vs中链接oracle中出错(数据连接不成功,请检查该数据库是否已启动尝试加载oracle客户端时引发BadImageFormatException.如果在安装32位 ...